Full Width [alt+shift+f] Shortcuts [alt+shift+k]
Sign Up [alt+shift+s] Log In [alt+shift+l]
1

CKSyncEngine questions and answers

from Christian Selig [alt+shift+b] in technology

I didn't know what to put as a header so here are some iClouds (interesting clouds) in Maine I’ve had a lot of fun working with CKSyncEngine over the last month or so. I truly think it’s one of the best APIs Apple has built, and they’ve managed to take a very complex topic (cloud syncing) and make it very digestible and easy to integrate, without having to get into the weeds of CKOperation and whatnot like you had to in previous years. That being said, there’s a fair bit of work you still have to do (through no fault of Apple, it’s just that a lot of cloud sync work is application-specific), such as how to handle conflicts, how to integrate the CKRecords into your flow, responding to errors, etc. More interesting for a blog post, perhaps, I also had a fair few questions going into it (having very little CloudKit knowledge prior to this), and I thought I’d document those questions and the corresponding answers, as well as general insights I found to potentially save a future CKSyncEngine user some time, as I really couldn’t find easy answers to these anywhere (nor did modern LLMs have any idea). Apple sample project When in doubt, it’s always nice to see how Apple does things in their nicely published CKSyncEngine sample project: https://github.com/apple/sample-cloudkit-sync-engine Other awesome resources are Jordan Morgan’s blog post at Superwall, as well as the awesome work by Pointfree on their SQLiteData library which is open source and integrates CKSyncEngine as the syncing layer. These are great resources to understand how to implement CKSyncEngine which this article won’t be going over. I want to go over questions and edge cases you may encounter. Conflict resolution If you’ve used NSUbiquitousKeyValueStore (my only prior exposure to iCloud), CKSyncEngine is thankfully a lot smarter with conflict resolution (and by “conflict resolution” I mean “what happens when two devices try to save the same piece of data to the cloud”). With NSUbiquitousKeyValueStore if...
7th Jan 2026

Stay updated

Get a weekly newsletter with the top 5 articles worth reading every week.

More from Christian Selig

I have thoughts on the iPhone Air

Hard to believe, but it’s been over 9 months since the current crop of iPhones came out, and I elected to grab the (apparently not super popular) iPhone Air, a new model of iPhone introduced for the first time. Rumor season for the new iPhones is in full swing, so it seemed like a good time to jot down my thoughts on the current model. Immediately, it’s really something to behold when you pick it up for the first time, it feels weirdly thin, pretty much everyone I’ve showed it to has been like “whoa”. You sacrifice a fair bit to get to that, from cameras to battery life, but I’ve always been a sucker for something novel, so when something as huge as the iPhone had a quirky new model I was really stoked to check it out. Heck, part of my frame of mind was that this device is going to have some serious limitations, which will probably also apply to the rumored upcoming folding iPhone which I also really want to check out, so it’ll almost be a warmup round to get me in the right headspace for a folding iPhone. I think that makes sense? Either way, over the last 9 months it’s been my primary phone day in and day out, and I wanted to jot down my thoughts on what it’s like to live with as someone who normally goes with the Pro phones, because there’s been some surprises. The design Picking up an iPhone Air for the first time is almost weird. Phones have had such a consistent slab design for so long that making it so, so dramatically thinner almost confuses your brain a little bit, like it’s an illusion or something. Forget putting a case on it, live with the danger. My favorite example was handing my phone to an employee at a local store to show her a product I was looking for, I could see kind of a confused look when I handed it to her followed by a “your phone is so thin”, almost like she thought there was something wrong with it. But, here’s my hot take. After the better part of a year it no longer feels thin, it just feels normal. Sure, when I pick up an older iPhone I’m lke “whoa this is so thick it feels like a relic”, but the Air doesn’t really feel noteworthy to me anymore. It’s like if you live in a cinnamon factory, I assume day one you’d be like “this is the best smelling place ever” but after a few months you’d go nose blind to it. My cat wouldn't even give the Air a chance, clearly a Pro phone fanboy That gives me pause, because it kinda makes me wonder that if any reasonably thin phone just feels normal after awhile, is it worth a bunch of compromises just to get it even thinner, when even that thinness feels normal eventually? I kinda feel like I thought about the thinness of my Pro iPhone the same amount after 9 months as I do now with the Air (which is to say, not really at all) but had a less compromised phone to show for it. And it’s weird, because with the old wedge-style MacBook Airs this feeling never went away for me, I loved those machines and every time I picked it up I kinda marveled, but that sensation kinda just went away with the iPhone Air, perhaps since I’m picking it up so much more than a laptop? The screen I’ve always been a normal-sized phone guy. The Plus/Max phones just feel unwieldy, but I do admit whenever I hold one I’m like “dang… maybe…”. The iPhone Air is the perfect solution to this, its screen size sits right in the middle of the normal Pro and Pro Max sized phones, and is one of my favorite parts of the phone. It’s large without feeling unwieldy (so awesome for games and videos), typing is a joy on the increased size, and it really makes me wish this size was the normal “small” Pro phone. Apple could then make the Pro Max phone 8" diagonal or something, I wanna test how far these Pro Max people will go. As a bonus my iPhone Pro can’t fit one of those tiny Xteink readers on the back, but my Air can perfectly! The cameras Camera quality feels as good as ever, it’s apparently not as good a main sensor as the Pro iPhones but I can’t really tell. It still has that distinctly over-processed look plaguing modern smartphones, but using an app like Project Indigo or Halide really helps here as they have modes that heavily reduce this distinct “phone” look. The real issue is that there’s only one sensor. I didn’t think I’d mind that much but unfortunately it turns out I do. On one hand, the iPhone’s main sensor has worse minimum focus distance than some Android phones, which means if you’re trying to take a photo of a document or something it often ends up blurry, you have to pull back a little bit then crop in after the fact. Since the sensor is 48 MP there’s tons of room to crop in (and even a built in faux 2x lens option) but it’s just kind of an annoyance versus either having an improved minimum focus distance or auto-macro mode using the ultrawide lens like on other iPhones. The ultrawide lens is not one I used a ton on previous iPhones, so outside of macro mode I don’t really miss it. I’m surprised though that I really miss the telephoto lens. There’s so many options where I want to see something that’s further away, like something when watching sports, or even a cool bird, and cropping in on the main sensor is such a far cry from a 5x telephoto lens. I’m in the minority here but I really wish Apple went back to having the secondary lens on iPhones be telephoto instead of ultrawide, and it makes me sad that going to the future folding iPhone will likely mean I still don’t get a telephoto lens back. Aside: camera plateaus have got out of control. This one rocks so badly if you try to interact with it while it’s lying down. I so prefer the Pixel style phones that have a consistent thickness across the full width of their camera plateau, because even though there’s a substantial plateau it doesn’t rock like a table with one short leg. The speaker (yes, singular) For the uninitiated, the iPhone Air has a single speaker up near the earpiece at the top of the phone. Pretty much every other modern iPhone (as far as I can remember) has one at the bottom as well, which means when watching video or something the audio doesn’t sound like it’s coming from one side of the phone. I was tempted to make an analogy to watching a video with only one AirPod in, but it’s not quite that bad, you do sorta get used to it, but it being subpar never fully goes away. What’s arguably worse though is with only one speaker the max volume is substantially lower, if you’re in an even remotely noisy environment (say, washing dishes) and you’re a little bit away from your iPhone good luck hearing things. Battery life Battery life confuses me. Coming from an iPhone 15 Pro which from everything I can tell was not revered for having the best battery life, I was pleasantly surprised with the iPhone Air’s battery life, it easily got me through a day where it sometimes felt the 15 Pro wouldn’t. This felt like an impossible feat given the thinness of the device, but improvements in electronics efficiency is remarkable. As time went on though, I started to be less impressed. Entering the spring season I started to notice getting the 20% battery notification a lot more often, and now in the summer it’s only gotten worse where it’s virtually every day. According to battery stats I’m still at 96% health. Is this an iOS regression that’s causing more battery usage? Am I just going out and on cellular more now that it’s gotten warmer? I honestly have no idea, but either way I wouldn’t call this phone a battery champion. I really long for a day where battery life is an afterthought in phones, some of the Silicon Carbide battery stuff seems really interesting here, so fingers crossed there’s some cool battery tech in the folding iPhone. Overall thoughts Ultimately, I love this phone, but I don’t think I’d recommend it to most people. Honestly, I’m not even sure I’d get it again over a Pro iPhone when it really comes down to it. If a fascinatingly cool design matters to you above all else, you should go for it. That sounds superficial, but I don’t think it is. Lots of people appreciate wearing a beautifully crafted mechanical watch over a $10 digital watch that is empirically more accurate and less fussy, there’s something just delightful about impressively crafted objects. I feel like we’re gonna be looking back at this phone even in 5 years remarking at its form factor versus 2031 phones, and there’s really something to say for a phone design being that bold. But it really does go back to that original MacBook Air that Steve Jobs pulled out of the manilla envelope. Absolutely amazing piece of engineering, as if something from the future came back proudly to show us what’s to come, but also something with enough compromises that your average person probably shouldn’t brave these waters. (Does anyone remember CoolBook?)

7th Jul 2026 • 2 votes
The Fitbit Air is interesting

The Apple Watch is one of the most fascinating pieces of modern technology for me. A gorgeous screen, an abundance of sensors, and a bonkers amount of computational power in a tiny little package that fits on your wrist. It reminds me of the Vision Pro in that a good amount of the time I put it on I can’t help but smile at how far technology has came. But it’s also weirdly something I’ve never used a great deal. Every few generations I buy a new one and try it out for a few weeks, but I inevitably run into a few speed bumps: I just fundamentally don’t love notifications being an even more prevalent part of my life than they already are I’m not a fan of having another device to charge daily or near daily While I love wearing a cool mechanical watch from time to time, I’m not a fan of having something substantial on my wrist most days. I can’t help but notice it all the time (forget sleeping in it). Personality quirk I suppose So ultimately I end up just putting it on for sports (go volleyball!) and leaving it on the charger the rest of the time, hoping one day for a device that’ll be a better fit. There’s a new wearable in town A few weeks ago a bunch of YouTube videos popped up showcasing a new wearable device: the Fitbit Air. I initially brushed it off assuming it would be mostly for Android users (as Google now owns Fitbit) and there wouldn’t be much possible for iOS integration. Talking to some people though, I learned there’s an iOS app that actually integrates things pretty well (its feature subset is a lot smaller than something like a smartwatch that would require a lot deeper OS integration). So now I’m listening. On paper, it provides a bunch of handy sensors, a week of advertised battery life, all in a package that is really low profile on the wrist. Okay, you have my interest. That was enough for me to head over to Best Buy on launch day to pick one up. (They were almost completely sold out, so there’s clearly some interest for this thing.) The hardware It’s a bit bigger than it looks like in pictures, but it’s absolutely tiny compared to any smartwatch. It’s just small and sleek enough that I barely notice it’s there, sometimes I even catch myself wondering if I accidentally took it off, which is a great sign. First wearable I’ve been able to sleep in without a worry. The actual “unit” is just a little rock sized device that slips into one of a few different bands. I have the default “obsidian” colorway and really like it visually; it has a nice style while also not being loud whatsoever, but there’s a variety of bands (and presumably more cool ones to come from the community) you can choose from. I’ve played a few sweaty sports in it, and done a bunch of yardwork, and the band holds up better than I thought it would for fitness activities, it really seems like the default band is one you can get away with using for a variety of activities. Battery The claim is a week of battery life. Charging that infrequently sounds really awesome (imagine if phones could do that!) so I was really hoping that would be the reality. And indeed, it seems to be! From my estimates I’m losing around 10% per day, so a week should be pretty easy to hit. It also charges up quite quickly. I don’t really love the idea of wearing it into the shower, so that’s a great time for me to take it off to charge, and in a 15 minute shower it charged from 44% to 85%, so taking it off for a quick charge while showering seems like a great way to keep it always topped off. The only missing of the charging story is a decent charging stand. By default the device connects with a little magnetic Apple Watch style charger, but I kinda want a way to just plunk it down on my nightstand into something and was kinda surprised Google doesn’t immediately have an accessory for that. To remedy this I made a quick little 3D printable stand that came out quite nice if I do say so myself! Download link if you want to grab it. The Google Health app The Google Health app itself is probably the most disappointing part of the equation, and a real head scratcher overall. It’s not like, offensively bad, it’s just very mediocre and I’m not sure why they didn’t delay the launch a month or something just to work on the app a bit longer. There’s two main issues. The first is that it’s just really buggy. Sometimes tapping things does nothing, my sleep score almost always states “unable to record” until I sign in and out, at which point it’s magically available. The other is the design. I’m not the biggest fan of Google’s software design but even this is just so boringly bland, half the time it feels like an old HTML website where the CSS didn’t load. It is so aggressively bland that it’s almost depressing. Things pop in and out like janky web views when loading. Sections just seem to bleed into each other with no solid information hierarchy (especially the AI assistant stuff). Things are aligned inconsistently. Then again, I have similar complaints about the Gmail iOS app so maybe this is just Google’s design language as a whole? The other part is just bizarre design functionality decisions, like when selecting a workout there’s a ton of activities listed from biking to swimming to golf to tennis, if you’re looking for a specific sport, you’ll never find it, you just have to select “Sport” (aren’t tennis and golf sports??), and then after the workout is finished you can classify it as basketball, volleyball, soccer, etc. Why not just be like the Apple Watch where you can select, I dunno, the sport? Heck if you go to the “Fitness” tab or the app (where I would think you’d easily be able to start a workout) the top 25% of the screen is a “Start your health journey” call to action that upon tapping the “Set your goal” button opens an AI chat (what?) that has been spinning for 15 seconds now with “Preparing an answer” (an answer to what??). Then there’s another 40% of the screen dominated by a library of what seem to be guided video exercises rather than again, a simple list of activities to choose from. Why? This screen should be dominated by my fitness stats and the option to start a workout. There is a teeny bar to start different workouts, with workout options such as “Workout” or “Walk”. This makes a lot of sense to me, as I often go to the shoe store and ask for “shoe”. I’m just complaining at this point, but as it stands now my “Weekly Cardio” progress bar is 22% full, but has “Calibrating, 3 days left” in it and “+0” overlaid on the bar. How do I have any progress if the value is 0? Is the 0 something else? Why show me data if it’s not calibrated? Okay one more complaint. My resting heart rate looks to be around 58 bpm but under “Daily Readiness” my resting heart rate is rated as “poor”. Why? If I tap on that it says “RHR typically ranges from 60-100 … active people often have lower RHR”. Why is 58-64 poor then? It’s a bewildering app that on one hand does the job and lets you get to and see the things you want once you get used to it, but it feels like the most hodgepodged, design by committee app I’ve used in awhile. Like six different teams at Google got to do design passes on the app and kept shoehorning in things they wanted versus someone having an actual cohesive vision of what this app should be. It genuinely feels like it would be worth starting over completely from scratch. This is a minimal bracelet that is super easy to use (it just sits on your wrist), it needs a corresponding elegant, non-bloated, simple app. The experience of using it All that said, it’s pretty awesome to use. How do you reconcile that with complaining about software for a few hundred words? Because you don’t have to interact with the software that much, it mostly just works ambiently/automatically, and you open the app if you want to view the stats it collected. I wish that last part was better, but you learn to live with the jank. One of my biggest issue with the Apple Watch is the whole thing around starting and stopping a workout. Call me a dummy but I’d often forget to either start or stop a workout. The watch kinda seems to try to help with this, where 15 minutes after a volleyball match on the drive home when I can’t safely interact with my watch it’ll be like “Hey I think you’re done want me to stop? Yes/No” which is not ideal. On the flip side I’ve never even had to start or stop a workout with the Fitbit Air, it just knows I was working out and nails the start and stop time, at best I have to relabel the workout to the actual sport it was, but apparently this gets better as you train it with time. And where it’s so much less obtrusive than an Apple Watch it’s so easy to get stats on everything throughout the day and night as I just leave it on 24/7. As for the accuracy of the stats, all seems great for me there. Sleep data seems to reflect how I feel and has a really in-depth breakdown, and fitness activity seems to track pretty nicely with what I’ve come to expect from the Apple Watch. The only weird thing I’ve noticed (and maybe it’s the case with the Apple Watch too, haven’t tested) but you can really easily/accidentally cheat the pedometer steps by just shaking your wrist (I remember doing this with cheap little pedometers in middle school) which seems weird? If you talk a lot with your hands you might have inflated step counts. Elephant in the room: Google Being an ads company, Google doesn’t have the best reputation with data privacy, so I can see why some are squeamish about using such a device. Me? I’m not too worried about Google having access to my step count, heart rate, sleep stats, etc. as they don’t massively feel like super personal stats, and the little bit of unease that gives me is outweighed by the utility of this device, but I totally get how someone else might feel differently. Wishes from Google Beyond fixing the app (please), functionality-wise the Fitbit Air seems pretty much perfect to me so there’s not a lot I find myself asking for. One thing I really would love though is wrist notifications around phone calls. One of my favorite uses for the Apple Watch is when I’m expecting a phone call on a given day, I find even with the ringer on I’ll just miss calls from my iPhone by not hearing the ring or not feeling the vibration, but the Apple Watch vibrating on my wrist always gets through to me. The Fitbit Air has a similar vibration mechanism (used only for alarms I think right now) and if it could pair to your phone like a car can for reporting phone calls (and maybe even texts, but I’d personally turn that part off), that’d be super handy. Do I recommend it? I do! At $99 USD it’s a pretty handy device if you care at all about health stats. It’s not perfect (especially in the app department) but it’s honestly exceeded the expectations I had for it, so for the price and for how unobtrusive it is day to day I’m really enjoying it. At the same time, Apple has a much better (downright impressive) reputation around data privacy, and in my eyes a lot better ability to design nice software, so I’d love to see them design a competing bracelet as an additional offering to the Apple Watch ecosystem. I’m not sure what more in terms of OS integration they’d be able to do that would move the needle that much, but I’d just love to see Apple’s spin on such a device and I’d feel a bit better about the data privacy angle.

2nd Jun 2026 • 2 votes
Rivian R2 wishes as an R1 owner

After 7 years with a Tesla Model 3, we picked up a gen 2 Rivian R1S in April of 2025. We still have the Model 3 as a second vehicle, but it’s been really cool experiencing a new electric vehicle from a very passionate new company. 2026 is a really exciting time for Rivian, as in the first half of this year they’re launching their R2 vehicle - a smaller, less expensive SUV offering that should have a lot more mass-market appeal. With a bunch of jourrnalists getting previews of the vehicle today, I thought I’d share what I’m really hoping for in this new vehicle having experienced their existing vehicle for almost a year, and a Tesla for the better part of a decade. None of these are in any particular order. Better audio We sprung for the “Premium Audio” package in our R1S and… it’s not premium at all. Whatever system just came with our Model 3 sounds demonstrably better, from where it feels like the sound is coming from (much more expansive) to the bass, the R1S just feels a lot weaker. Honestly for the base audio system it would be probably decent, but for a “Premium Audio” system it just falls short. They have been making it better and better with softwware updates of all things over the course of our vehicle’s life, where it’s noticeable better now than it was at the beginning, a recent update in December basically sounds like they figured out how to turn on the subwoofer in the trunk a little bit, but it’s still just not that much. With the Tesla sometimes I’d park and finish out a song before leaving the car because it just sounded so good, have never had that happen in the Rivian so I hope they bring some of that experience to the R2 even through another “Premium Audio” package for those who care. No dual motor EPA shenanigans So our R1S is dual motor, meaning it has a motor for the front wheels and a separate motor for the back wheels, meaning you get AWD. Rivian allows you to get more range by only using the front motor, turning it into effectively a front wheel drive vehicle and as only one motor is active you get a bit better range (about 10%). Sounds great, right? Choose between more efficient front-wheel drive on trips, but just use AWD around town by default. Well, the devil is in the details. In order to be able to market this slightly improved range, the EPA requires Rivian to automatically revert back to this front wheel drive/higher efficiency mode after a few hours. Kinda like gas vehicles and how they turn off the engine at traffic lights, and if you disable that it just keeps turning itself back on. So even if it’s the winter and you’re like, “Dang, roads are a little dicey, I want to be in AWD”, if you park the car for awhile and forget to set it to AWD, it just reverts to front wheel drive. It’s like if your iPhone kept reverting to “Low Battery Mode” every 2 hours even after you keep toggling it off so Apple could advertise that model having 10% better battery life. Note: the vehicle isn’t hard-locked to front wheel drive in this mode, if it slips it alerts you that it’s switching over to AWD (I don’t want to wait for it to slip), and if you floor it on the highway for instance it’ll engage the rear motors for extra grunt, but because it has to link up the rear motors to an already moving system, you can sometimes get a kinda weird clunk feeling as the rear motor connects itself at speed which isn’t very satisfying. It almost feels like a wheel slip in the rain. This is maddening, and is only the case on their dual motor vehicles. For tri and quad motor vehicles, they just don’t market them as having that extra 10% range, so all the modes are actually sticky! If you say “front wheel drive mode” (they call it “Conserve”) it stays there indefinitely, if you say “AWD mode”, it stays there indefinitely. Is this dumb? Yes. Do I blame the EPA? Yes. Do I also blame Rivian? Also yes, they’re making this trade off to be able to market extra range. If Rivian does this same stuff for the R2 dual motor just so they can advertise a few extra miles, I really hope they have a $10 option you can configure when you order called “Give me less marketed range with no actual range decrease but have the vehicle actually do what I tell it to”, but maybe with a catchier title. Spare compact tire Our Tesla lacks a spare tire of any sort, instead electing to include a repair method and roadside assistance. A few years back a nasty pothole absolutely destroyed the sidewall of one of our tires on a drive home, and where it was sidewall damage it simply wasn’t repairable, so we had to call Tesla roadside assistance. Unfortuantely Tesla roadside assistance was absolutely useless, taking ages to respond and then ultimately not having any providers in the area, so we just ditched the car and got a ride home with a friend and dealt with it the next day. After that I was like “I do not want another vehicle without a spare tire on board”. With our R1S on the other hand, we had another unlucky event where we popped a tire (also the sidewall if you’d believe it, I have some great luck) and sure enough, since we elected to get a compact spare tire it was super easy to deal with, just grab the included jack, throw the compact spare on, then the next day we just slowly drove over to a shop for a new tire. Completely uneventful. I was worried with the smaller body that you wouldn’t be able to in the R2, but Jerry Rig Everything showed room for a compact spare in the sub trunk, nice! Digital rear view mirror I don’t see this in any of the videos so it seems unlikely but I’m holding out hope it’s an option. Picture this: you approach your vehicle, since it sees it’s your phone it knows who you are, so it positions your seat, steering wheel, mirrors, Apple Music/Spotify account, and temperature preferences. You didn’t have to do a thing, the vehicle is just smart! Except… your spouse is 7 inches shorter than you so when you look in the rear view mirror you’re staring at the back seat. Is having to adjust your rear view mirror a big deal? No, but having the vehicle do everything else for you almost draws more attention to the final thing it’s missing that you still have to adjust every single time. This is a solved problem in inexpensive vehicles, just have a “digital rear view mirror” that requires no adjusting as it just shows a camera feed of the rear of the vehicle where the mirror is. Digital rear view mirror in a RAV4 by u/MildSpaghettiSauce Rivian’s cameras are legitimately so good, that at night it’s easier to use them for side blind spot monitoring when you change lanes than the actual side mirrors, because they let in enough light that you can actually make out details through the pseudo “Night Mode” camera vision that you can’t with the mirrors alone, it’s wild. I want that for the rear view mirror too! Do you still prefer an analog mirror? That’s totally cool, all the vehicles that offer this let you just toggle back to a good ol’ reflective mirror. No harm no foul. V2H story Not a lot of people realize one of the most powerful part of EVs: they’re mobile powerstations that can (theoretically) power your entire home. Take a Tesla Model 3 for instance, it has a 75 kWh battery. Tesla also sells Powerwalls to help you back up your home, each Powerwall is around $6,000 and has 13.5 kWh of battery capacity. Yes, that means your Model 3 is the equivalent of more than 5 Powerwalls, or $33,000 in equivalent batteries. That’s nuts! Ever have a power outage? With the average home in Canada using about 30 kWh per day, that could power your house through potentially multiple days and genuinely save lives. My Rivian R1S is a lot better than my Tesla here in that it actually has normal, 120V AC outlets, but they can only output a measly 1.5 kW, so even powering a hungry kettle could result in the breaker tripping. Much better than the max 120W my Tesla can do through a 12V cigarette outlet (good god how is that the best they can do), but it’s still not enough output to power a house effectively. It’s kinda like being in a drought with a massive water tower, but water only comes out in drips. Better than nothing, but we need output speed too. The R1 can output much more by pulling DC energy directly from the battery through CCS protocols like the ISO 15118 standard, and sure enough despite Rivian not talnking about it, folks with these systems have been able to connect the R1S directly to their house with the appropriate cable and send up to 24 kW to power their entire home, crazy stuff, hope Rivian talks about this more in the future as clearly the vehicle supports it even if they are quiet about it. I’m kinda curious what the R2’s story is here. The CEO of Rivian said in an interview (~1:20:20) that the R1 and R2 both have bidirectional EV charging in the realm of 20 kW (which again we’re finally seeing folks be able to take advantage of in the R1 recently), but unlike being limited to 1.5 kW of AC output in the R1, the CEO says the R2 will be able to do “10 or 11 kW”. That’s massive versus the 1.5 kW the R1 can do, but I’m not sure that made it to production in the end? Doug Demuro showed a Rivian graphic with a V2L adapter (at 26:22) but it’s only listed as 2.4 kW. Still a lot better than 1.5, but a far cry fro the 10 or 11 kW that RJ Scaringe said earlier. Either way, talk more about this Rivian! This is one of the coolest parts about EVs! Better suspension The R1S has a fancy air suspension, so picture a bagpipe over each corner of the vehicle that lets it inflate or deflate to change the height of the vehicle and theoretically make for a cushier ride. I say theoretically because honestly I find the gen 2 R1S kinda rough suspension wise. Like, hitting the same potholes around where I live in the Tesla Model 3 (with a much simpler coil suspension, no bagpipes) versus the Rivian R1S I honestly find the Tesla makes me wince less. I thought it might have been the massive 22" wheels that came on the Rivian and the correspondingly small sidewall on the tire, but we switched to a 20" wheel for the winter with a much larger sidewall and it’s better but still not great. Would love to see Rivian tune this so that the R2 is a super smooth ride, I’ve heard the newer Tesla Model Ys are incredible here and also just have a coil suspension like the R2 will have. Faster charging Brands love to brag about maximum charge speeds, our Tesla for instance got a software update to enable 250 kW charging, which is super fast. To put that in perspective, most new homes in North America have 200 amp service going into their home, 250 kW is the equivalent of upgrading to 1,000 amp service, and then pouring every drop of that power into your car. But, while that top speed is impressive, it holds that for like, minutes maybe before crashing down to much slower charging speeds. Our R1S is no different here, with good peak speeds but it doesn’t exactly hold them super well, there’s been tons of reports that the cooling method for the batteries in the R1S is just underwhelming, where the Rivian R1 models have a two battery packs stacked on top of each other with a single liquid cooling plate in the middle (so only the top or the bottom of the battery is touching the cooling surface), and that single plate often seems a little underpowered for cooling such a massive pack quickly. Kinda like thermal throttling in laptops! We typically see around 45 minutes for the battery to charge 10-80% at fast chargers. The R2 on the other hand appears to be moving to a smarter cooling method where the cooling liquid flows almost through a ribbon, weaving along the sides of each cell in the battery pack, meaning a lot more cooling surface area. And indeed, this seems to have paid off, with a Rivian employee saying they’re now under 30 minutes for 10-80% on the R2. Class-leading? No, Hyundai is under 20 minutes, but a fair bit better. And for folks without EV experience, honestly, this is mostly a non-issue. 99.5% of your charging is done at home where speeds don’t matter (it just charges overnight like your phone), it’s only if you’re going on a bit of a roadtrip where this comes into play. Better USB-C Okay this isn’t a big deal, but the R1S has a ton of USB-C ports everywhere, like there must be close to a dozen, which is awesome, but if you try to charge a power bank or a laptop or something over USB-C it’s just… not very fast. I haven’t actually measured but I’m assuming they’re only doing 12V (at most) instead of at least 20V which most chargers are at nowadays, which I really hope they improve. My MacBook charges so slow. Better phone charger This is the one part of the Rivian that I’m like “how did this even make it out of the factory”. And if you’d believe it the phone charger in my vehicle is the second revision, so this is their attempt at fixing it somehow. Basically they have a flat little area near the arm rests where you can place one or two phones to have them wirelessly charge. Sounds fine, right? I haven’t measured it, but from experience I believe the charging “sweet spot” is approximately 4 atoms wide. If the car is in motion at all, it moves from those four atoms and tries super hard to charge it but ultimately cannot, ultimately just making the phone get super hot and lose a bunch of battery life. One time we went camping and I was like “Okay, the vehicle is not moving, surely I can just set it here while I sleep and it’ll charge”. Nope, somehow even stationary the phone did not charge beyond 20% overnight and was super hot in the morning. What. They have managed to make a phone charger that is worse than not having one at all. I can’t even place my phone in the arm rest while I drive because it just cooks it, at least if nothing was there it could just be a storage location. No, mine is not broken, this is a common complaint from just about every Rivian owner, and they need to make this better for the R2. Just hot glue a MagSafe puck in there at minimum. Better Phone as a Key (PAAK) Rivian and Tesla do the (honestly very cool thing) where it uses your phone to detect your proximity to the car and lock/unlock it and recognize who the driver is to set preferences. It’s great, no having to carry around bulky car keys (don’t worry, there is a backup little credit card style key you carry in your pocket in case your phone dies or disappears). Rivian even recently updated theirs to use the first-party “Apple CarKey” functionality so you get bonuses like being able to unlock it for a few hours even after your phone’s battery died, and it uses “Ultra Wide Band” (UWB) so it can position your phone in relation to the car down to the centimeter. Tesla doesn’t do this and has their own proprietary thing that I think is based on Bluetooth but might use a bit of UWB on newer models (not on my car). But… Tesla’s is still much better. There’s two aspects of nailing good “phone as a key” support: firstly, unlocking the car as you approach (duh), and secondly, knowing who approached the car so you can set their preferences (seat, steering wheel, mirror positions, temperature preferences, music streaming account, etc.) Unlocking: B+ for Rivian here, sometimes even with the recent update I have to stand by the door for a few seconds and be like “Um, hello” before it sees me there and unlocks. Same phone, walk over to my Tesla, always unlocks instantly even though the Rivian should have a massive advantage with UWB. Identifying driver: D for Rivian here. Again, with UWB and centimeter-level positioning over the driver in relation to the vehicle Rivian should be able to know exactly who is approaching the driver door when my girlfriend and I (who both have Rivian keys) approach the vehicle, but 95% of the time when my girlfriend is with me (despite her always preferring to be passenger) it always sets her as the driver. Even weirder, sometimes she’ll yell out the window if I’m putting something in the frunk “Oh it actually recognized you this time!” with me set as the profile, but then when I sit down in the seat it reverts to her. What. Rivian needs to do better here for the R2. The pain is especially compounded by the fact that if you leave in a bit of a rush and somehow don’t realize the driver profile is wrong, Rivian won’t let you change your driver settings unless you slow down to under 3 mph, so you better get ready to pull over and stop the car if you need to adjust something. With Tesla you can always just swap profile and have your steering wheel, seat, mirrors, etc. move to where they should be, and that feels a lot safer than having to muck around with changing things via a touch screen or sit their tweaking controls on the side of the car seat. Smoother software Somehow despite my Model 3 being a 2018 model and probably running a Raspberry Pi compared to the hardware Rivian runs, moving around the OS in the Tesla still feels faster. With the Rivian there’s still lag just bouncing around screens with stuff sometimes taking a second or two to show up. I don’t get it. I really hope this improves on the R2, and thankfully it looks like it does, Doug DeMuro bounces around the R2’s UI here and it’s much faster than my gen 2 R1S with everything loading virtually instantly. Yay. CarPlay I’ve never had a vehicle with CarPlay, we rented a vehcile with it and it was kinda neat but Teslas and Rivians already have like every piece of software I’d want when interfacing with a vehcile (good, traffic-based maps and popular music streaming services), so with the exception of Overcast I don’t personally care about CarPlay at all. That being said, I know a ton of people do so I kinda hope Rivian looks into it even just as a little windowed experience because I think it would make a lot more people interested. Alexa is so bad About a month ago at their Autonomy Day Rivian previewed (among many other cool things) their new “Rivian Assistant”. This is sorely needed, their current system uses Alexa and. it. is. so. bad. With our Tesla, you can say “Navigate to Blah” and it will just automatically plot it and you’re off to the races. Best case with Rivian you’re like, “Alexa, navigate to Bob’s Cool Donuts in Dartmouth”, and Alexa is like “Would you like to navigate to Bob’s Cool Donuts, Dartmouth, Nova Scotia”, “Yes” where it repeats literally the only possible match back to you requiring confirmation every time instead of just… taking you there. A more typical case is “Alexa, navigate to Bob’s Donuts in Dartmouth”, “Would you like directions to Bob’s Donuts in Toledo, Ohio”. No Alexa, I want the one that’s a five minute drive, not the one a three day drive away. “Oh, okay, try being more specific next time” Better heat pump They do a decent job isolating the sound from the outside if you’re in the vehicle, but if it’s cold outside and you heat up your Rivian R1S, you can hear that sucker from a full block away in this super high pitched whine. I’ve understandably had multiple people ask “Is it okay?”. Better time placement The UX for knowing the current time in the cabin is not great. There is no clock on the main driver instrument display, and it’s in the furthest place possible on the middle display, so it’s not exactly easy to check. There’s tons of space on the driver display so I either wish they shoved it ther, or if you put in directions, I wish it showed you the current time there. Right now it just says “ETA 2:58 PM” which if you’ve been driving for 45 minutes and kinda have lost track of time is not particularly helpful, that could be in 5 minutes or in 25 minutes for all I know. It looks a bit better on the R2 (seen in MKBHD’s video) where they’re placing it on the middle display a lot closer to the driver, but I still wish they just put it on the driver display. Better second row release The R1S and many other modern vehicles have really stupid and downright dangerous second row releases, where the main door handles are electric, so it there’s an electrical issue and you need to get out of the vehicle, you obviously need a manual release. On my Tesla, there’s a (shocker) pull handle that is obvious and you can just pull to get out of the vehicle. Easy peasy (don’t worry Tesla has since changed to an inexplicably stupider, hidden design like Rivian) The R1 is incredibly stupid and you literally have to pop off trim in the rear door to get access to a cable you can yank. Yeah, good luck remembering that in dire circumstances, so I threw one of those window breakers in the back cubby. The R2 is better here, Jerry Rig Everything shows a little button patch you can pop off much easier to get to the cable, but still, just put the manual release that the front doors have, this is a basic safety feature and should not be complicated. Smaller This we know will be the case, with the Rivian R2 being about 2 feet shorter than the R1S. The R1S is a properly large vehicle, which makes it very capable, but I dunno, I do find myself wishing it was a little smaller quite often, so I honestly think if the R2 is compelling enough I might be trading in my R1. I’m so excited I genuinely think Rivian is doing such cool things, and the company behind it seems to have a real passion for building cool products instead of just sitting on Twitter all day, so I’m super excited to see what this mass-market vehicle does for them and I’m hoping for the best. Looks like they’re launching in spring (I guessed summer!) with more pricing and configuration details March 12th.

9th Feb 2026 • 1 votes
App Clip Local Experiences have consumed my day

Okay, I have to be doing something astronomically stupid, right? This should be working? I’m playing around with an App Clip and want to just run it on the device as a test, but no matter how I set things up nothing ever works. If you see what I’m doing wrong let me know and I’ll update this, and hopefully we can save someone else in the future a few hours of banging their head! Xcode App Clips require some setup in App Store Connect, so Apple provides a way when you’re just testing things to side step all that: App Clip Local Experiences I create a new sample project called IceCreamStore, which has the bundle ID com.christianselig.IceCreamStore. I then go to File > New > Target… > App Clip. I choose the Product Name “IceCreamClip”, and it automatically gets the bundle ID com.christianselig.IceCreamStore.Clip. I run both the main target and the app clip target on my iOS 18.6 phone and everything shows up perfectly, so let’s go onto actually configuring the Local Experience. Local Experience setup I go to Settings.app > Developer > App Clips Testing > Local Experiences > Register Local Experience, and then input the following details: URL Prefix: https://boop.com/beep/ Bundle ID: com.christianselig.IceCreamStore.Clip (note thne Apple guide above says to use the Clip’s bundle ID, but I have tried both) Title: Test1 Subtitle: Test2 Action: Open Upon saving, I then send myself a link to https://boop.com/beep/123 in iMessage, and upon tapping on it… nothing, it just tries to open that URL in Safari rather than in an App Clip (as it presumably should?). Same thing if I paste the URL into Safari’s address bar directly. Help What’s the deal here, what am I doing wrong? Is my App Store Connect account conspiring against me? I’ve tried on multiple iPhones on both iOS 18 and 26, and the incredible Matt Heaney (wrangler of App Clips) even kindly spent a bunch of time also pulling his hair out over this. We even tried to see if my devices were somehow banned from using App Clips, but nope, production apps using App Clips work fine! If you figure this out you would be my favorite person. 😛

8th Sep 2025 • 50 votes

More in technology

Inside a 1980s filter chip that uses switched capacitors

Sometimes it's easier to identify an IC with a microscope. While sorting a box of old ICs, CuriousMarc came across some Harris ICs labeled "F1-10-5", a mysterious part number that didn't show up in any databooks. Since unidentifiable ICs are useless, he gave me one to analyze. Conveniently, it was in a ceramic package, so I could open it up with a quick tap from a chisel. Under the microscope, the chip's most striking feature was a grid of square capacitors. With all those capacitors, I guessed that it was a switched-capacitor filter. The die provided another clue: the part number HF-10. With this information, we quickly found that the chip was Harris's version of the standard MF10 switched-capacitor filter chip.1 The Harris integrated circuit, labeled F1-10-5 (or maybe FI-10-5), with a 1985 date code. Photo courtesy of CuriousMarc. Switched-capacitor filters were a popular way to implement analog filters in the 1980s. Rapidly switching capacitors in and out of a circuit enabled the construction of single-chip filters that were easy to use and performed well. The MF10, introduced by National Semiconductor in 1981, provides two flexible filters on a chip; each filter acts as a low-pass filter, band-pass filter, or a high-pass filter. The filter's characteristics are simple to control with a few external resistors. The Harris HF-10 die under the microscope with the main functional blocks labeled. (Click for a larger image.) Since I had the chip under the microscope, I took the opportunity to analyze it more closely. The white lines are the metal wiring that connects the chip's circuitry. Under the metal layer are two layers of polysilicon (reddish) and the underlying silicon (gray). The top and bottom halves of the chip are mostly mirror images, corresponding to the chip's two filters. The distinctive reddish squares in the middle of the chip are 72 tiny capacitors, constructed from polysilicon. Above the capacitors, CMOS switches turn on and off at the clock frequency, switching capacitors in and out of the circuit. Each filter uses three operational amplifiers (op amps), outlined in red. At the right are the three outputs from the three op amps: high pass, band pass, and low pass. The control circuitry is on the left: clock level shifting, clock shaping, frequency ratio handling, startup circuitry, and current sinks to provide fixed currents to other parts of the chip. Around the edges of the silicon die, 20 hair-thin bond wires connect the die to its 20 external pins. The die has some interesting chip art: a Harris logo and an outline of Florida; Harris was headquartered in Melbourne, Florida. The initials on the die are presumably the engineers who designed the chip. Some interesting images from the die. Switched capacitor circuits The filter is based on switched-capacitor circuits. A switched capacitor can replace a resistor in certain circuits, as shown below. The switches are controlled by a clock signal; the switches alternately close in clock phase 1 and phase 2 (ϕ1 and ϕ2). In phase 1, the capacitor is charged to the input voltage. In phase 2, the capacitor passes charge to the output. By rapidly toggling the switches, charge is (almost) steadily passed to the output. The larger the capacitance, the more charge that is passed through. Likewise, a higher frequency passes more charge. It can be shown that the circuit matches a resistor with resistance of 1/(fC): a higher capacitance and frequency correspond to lower resistance. A switched capacitor can replace a resistor. Why would you replace a simple resistor with this complicated switching circuit? In an integrated circuit, resistors are inaccurate and inconveniently large, especially high-value resistors. Replacing a large resistor with a small capacitor saves space on the die. Moreover, it is easy to generate an extremely accurate clock frequency with an inexpensive quartz crystal, making the filter's frequency highly accurate. Finally, the equivalent resistance can be changed simply by changing the clock frequency, making it easy to tune or sweep the filter. On-chip capacitors are fairly inaccurate, with the capacitance typically varying by 20% from chip to chip due to variations in manufacturing conditions. However, this isn't a problem in the MF10 because the circuitry was designed to depend on the ratio between capacitances, which is stable. Specifically, the MF10 uses 72 identical square capacitors, which will have almost identical capacitances. Careful examination shows that some of the capacitors are separate, while others are connected in groups of 8 to form larger capacitors.2 This yields a highly accurate ratio of 8:1 between the grouped capacitors and the individual capacitors, even though the absolute capacitance will vary from chip to chip. Each capacitor is constructed from two layers of polysilicon,3 forming the plates of the capacitor, separated by a thin layer of insulating oxide that acts as the dielectric. I estimate that each capacitor square is 5 picofarads. The grid of capacitors in the MF10. I've added yellow lines to show how the capacitors are grouped. The switches are above and below the capacitors. This chip uses one more trick with switched capacitors: it inverts the voltage while acting as a resistor. In the switched-capacitor circuit below, there are four switches. The capacitor charges to the input voltage during phase 1, the same as before. But duing phase 2, note that the top plate of the capacitor is grounded, while the output comes from the bottom plate. If the capacitor was charged to, say, 1 volt, the top plate is 1 volt above the bottom plate. So if the top plate is grounded, then the bottom plate must be at -1 V. (This is the same idea as a charge pump.) This circuit turns out to yield a more accurate filter because some parasitic capacitances cancel out. By using four switches, the switched capacitor can invert the voltage. The op-amp integrator The heart of most analog circuits is the operational amplifier, or op-amp. An op-amp takes two inputs and amplifies the difference by many orders of magnitude. Normally, an op-amp is configured with negative feedback, which forces the two inputs to be essentially the same. Op-amps are useful not only for amplification, but for filtering, buffering, summing, and other tasks. A basic op-amp integrator. The filter chip uses op-amps as integrators, to integrate an input voltage over time. The circuit above shows a simple op-amp integrator. The input voltage produces a current that flows through the resistor and charges the capacitor, so the capacitor holds the integral of the input voltage over time. You might expect that the left side of the capacitor would become positive as it charges. However, the op-amp's feedback forces both inputs to ground, so instead the right side of the capacitor becomes negative. Thus, the output is the negative integral.4 The MF10 chip uses the circuit above, except the resistor is replaced with a switched capacitor. The capacitor across the op-amp is not switched, but consists of either 8 or 16 capacitors from the capacitor grid. The CMOS switches The CMOS switch is the technology that makes the switched-capacitor filter possible. A CMOS switch has a fairly low resistance (maybe tens of ohms) when closed and an enormously high resistance (hundreds of megohms) when open. This high resistance ensures that the charge doesn't leak out of the capacitors. A CMOS switch is constructed by combining an NMOS transistor and a PMOS transistor. The NMOS transistor and PMOS transistor are opposites. An NMOS transistor is good at pulling the output low, while a PMOS transistor is good at pulling the output high, so in combination they provide an effective switch. An NMOS transistor is turned on by a high voltage on the gate, while a PMOS transistor is turned on by a low voltage on the gate. Thus, a CMOS switch requires two control signals of opposite polarity, which is a minor inconvenience. A CMOS switch. The diagram above shows how a switch is implemented with an NMOS transistor and a PMOS transistor in parallel. When the control line is high, and the inverted control line is low, both transistors turn on, providing a path through the switch circuit. When the control line is low (and the inverted line high), the transistors turn off, opening the switch. The chip uses CMOS switches in pairs, with one switch on and the other off. This forms the equivalent of a toggle switch that connects either A or B to the output. This circuit is simply two CMOS switches, with separate control lines for each switch, as shown below. In the MF10, the switch toggles at the clock frequency. During one clock phase, the switch is connected to A, while the switch is connected to B during the other clock phase. The schematic on the right, below, is the same circuit, but reorganized to match the layout on the die. A double-throw CMOS switch. The photo below shows a CMOS switch on the die, constructed from two PMOS transistors and two NMOS transistors. The four control lines run horizontally in polysilicon, forming a transistor gate where they cross doped silicon. The upper PMOS and NMOS transistors are driven by the clock phase 1 (Φ1) signals, while the lower transistors are driven by the phase 2 signals. CMOS switches on the die. The metal layer was removed to show the transistors. One problem with switched-capacitor filters is that the clock can generate switching noise that appears in the chip's outputs. The MF10 uses several techniques to reduce clock noise. Each set of transistors is surrounded by two isolation rings: one positive and one negative. These block noise from traveling through the silicon substrate. Note that the rings have opposite polarity for the NMOS transistors and the PMOS transistors. The light tan region in the photo above is a second layer of polysilicon. This polysilicon is connected to ground, providing a shield layer over the switching circuits. For the photo above, I removed the metal layer with acid5 to make the transistors more visible. The photo below shows the original die, with the metal layer connecting the transistors. The small black circles are connections between the metal layer and silicon or polysilicon. The same CMOS switches, showing the metal layer. Putting it together: the state variable filter There are many ways of creating a filter. The MF10 chip uses a technique called the state variable filter, invented in 1967. This circuit acts as three filters, with high-pass, band-pass, and low-pass outputs. Moreover, the circuit is flexible since the frequency, the gain, and the filter quality (Q) can be varied independently. It uses three op-amps: one to sum signals and two for integration. By changing how the values are summed, the characteristics of the filters can be changed. The diagram below shows a simplified representation of a state variable filter. The mathematics behind a state variable filter is complicated, so I won't get into it. In short, the signal, the integral, and the double integral form the three state variables that define the state of the system. Simplified diagram of a state variable filter, with two integrators. Inspired by North Coast Synthesis. The block diagram below shows how the filter is represented in the MF10 datasheet.6 The diagram is similar to the diagram above, with three op-amps. However, the summing circuitry has been separated out. Moreover, the feedback paths are not shown explictly. Instead, resistors are connected between the chip's external pins (squares) to configure the filter as desired. The mode switch at the top allows the low-pass feedback to be controlled by an external pin (SA/B). Block diagram of one of the filter sections. Adapted from the datasheet. The schematic below is my reverse-engineered schematic of the filter, as implemented on the chip. It closely matches the block diagram, but fills in the details. In the block diagram, the summing circuit (circle) adds one signal and subtracts two signals. This summing circuit is implemented with the three switched capacitors on the left, which act as summing resistors. Note that one switch is grounded during phase 1, while the others are grounded during phase 2; switching the polarity implements addition versus subtraction. The top sum input is either feedback from the low-pass output or ground, selected by an input pin. A CMOS switch is used here, but the switch is static, not clocked, so it doesn't use protection rings and shielding like the other switches. My reverse-engineered schematic of one of the filters. Click this image (or any other) for a larger version. The integrators have switched capacitors on the inputs, acting as resistors. The integration capacitor is either 8 or 16 "squares" of capacitance, selected by a ratio selection pin. This controls the ratio between the clock frequency and the filter frequency, either 50:1 or 100:1.7 Although the integration capacitors are attached to a CMOS switch, the switch is static, so the capacitors act as regular capacitors, not switched capacitors. The op-amps The op-amps are fairly standard CMOS op-amps, built from about 35 transistors. (You might get a lower count if you try counting the transistors below, since some of the blocks are multiple transistors.) The op-amp transistors are much larger than the CMOS switch transistors (very bottom, center). On the die, each op-amp is split into two parts: the differential amplifier on the left and an additional amplification stage on the right. A large capacitor (pinkish) sits between the halves. My first thought was that this was the integration capacitor, but it is just a frequency compensation capacitor, common in many op-amps to stabilize the output. The op-amps also have large transistors next to the output pins; these transistors are functionally part of the op-amps, but located next to the pins to minimize resistance. One of the chip's op-amps. I removed the metal layer to make the transistors visible. One unusual feature of the op-amps is a low-power mode. Pulling a particular IC pin low causes the chip to stop filtering and enter a low-power mode, reducing power consumption by 70%. This is implemented by shutting down the "current mirror" circuits that provide fixed currents to the op-amps and other parts of the chip. The non-overlapping clock generator The MF10 chip is driven by external clock signals, one for each filter, with the frequency of the filter proportional to the clock frequency. The photo of the CMOS switches earlier showed that the clock drives four control lines for the switches. You might think that two control lines would be sufficient: the clock and the inverted clock. The problem is that it is very important to avoid having both switches closed at the same time, even for a moment, as that will short the inputs and corrupt the signals. Instead, the two switches have separate control lines that enforce a small gap between when one switch opens and the other one closes. This is implemented with the circuit below that takes an input clock signal and produces the four outputs that drive the switches. The circuit to generate non-overlapping clock signals. There is a delay between when gate A or B turns on and when the corresponding output changes. The idea behind the circuit is that a phase is blocked from going high until after the other phase goes low, with a pair of inverters providing additional delay. In more detail, suppose the input clock drops from high to low. Gate A will turn off, causing the phase 1 output (ϕ1) to drop after a few gate delays (A delay). Gate B can't turn on until ϕ1 goes low. After additional gate delays, ϕ2 goes high. The behavior is similar when the input clock goes high. Gate B turns off, causing ϕ2 to go low after a delay. This allows gate A to turn on, turning on ϕ1 after more delay. To summarize, after a phase is turned off, there is a delay before the other phase turns on, so the two phases never overlap. The clock-shaping circuitry is implemented with CMOS logic gates. The photo above shows this circuitry under the microscope, with the metal layer removed. The rectangular blocks are doped silicon that forms transistors. The darker regions on the left are NMOS transistors and the lighter regions on the right are PMOS transistors. A CMOS gate consists of NMOS and PMOS transistors working together. The PMOS transistors are larger because PMOS transistors are slightly less efficient than NMOS transistors. The dark circles are contacts between the silicon and the metal layer on top. The copper-colored lines are not metal but a special type of silicon called polysilicon. When a polysilicon line crosses doped silicon, it forms the gate of a transistor. The pinks and greens are due to thin-film interference from a thin layer of oxide that didn't completely dissolve; the silicon is actually gray. The ternary input A weird feature of the chip is the input pin that selects the ratio between the input clock and the filter frequency. In effect, this is a digital input with three values. Tying the pin to the high supply voltage selects a 50:1 ratio. Tying the pin to the midpoint between the supply voltages selects a 100:1 ratio. Pulling the pin to the low supply voltage stops the filter and puts the chip into a low-power mode.8 To handle the three-level input, the input goes through two separate buffers, one that transitions at a lower voltage and one that transitions at a higher voltage. Thus, the two buffers separate the middle signal level. Each buffer consists of a special inverter feeding into a regular inverter. Before explaining the special inverters, I'll review how a regular CMOS inverter works. A CMOS inverter is constructed from a PMOS transistor and an NMOS transistor. When the input is high, the NMOS transistor turns on and pulls the output to ground. When the input is low, the PMOS transistor turns on and pulls the output high. Thus, the input signal is inverted. A CMOS inverter is constructed from a PMOS transistor and an NMOS transistor. In the die photo, you can see the four PMOS transistors (light gray) and four NMOS transistors (darker), forming four inverters. When a polysilicon line (copper-colored) crosses a doped silicon region, it forms the gate of a transistor. For this picture, I dissolved the metal layer in acid so the transistors are visible. The metal layer connected the transistors to complete the wiring of the inverters: it connects the two "out1" contacts to "in2" and connects the two "out2" contacts to the rest of the chip. For the second buffer, "out3" connects to "in4" and so forth. The four inverters that handle the ternary input. I flipped the image to make the orientation better. In this circuit, the length of the transistor gates is varied to make the inverters activate at different voltage levels. Six of the transistor gates are normal (orange arrows); the PMOS gates are wider (in the vertical direction) than the NMOS gates because PMOS transistors are inherently weaker. However, two of the transistor gates are unusually long (horizontal direction, red), making the transistors weak since the current must travel a longer distance. The inverter on the left has a weak PMOS transistor. If the input is high or low, the inverter will operate normally. But if the input is in the middle, both transistors will partially turn on. Since the PMOS transistor is very weak, the NMOS transistor will "win", pulling the output low. Thus, the leftmost inverter treats a medium-level input as a 1, outputting a 0. The third inverter is the opposite; the NMOS transistor has a long, winding gate, so it is weak. In this case, a medium-level input will partially turn on both transistors, but the PMOS transistor will "win", pulling the output high. To summarize, the two inverters have opposite behavior for a middle-level signal, allowing the three input levels to be distinguished. Since the output from a special inverter may be weak, the output goes to a normal inverter to amplify the signal. Conclusions Like most semiconductor companies, Harris has a complicated history. Harris started way back in 1895 as a printing press company. Harris moved into high technology in the 1950s and 1960s, acquiring various radio and electronics companies. In particular, Harris entered the IC business in 1967, when it acquired Radiation, Inc., renaming it Harris Semiconductor a few years later. (We've encountered some Radiation modules in Apollo systems, but I haven't written about them yet.) Harris got out of the semiconductor business in 1999, spinning off Intersil, which was later acquired by the Japanese semiconductor firm Renesas. In 2019, Harris merged with L3 Technologies to become L3Harris, the eighth-largest defense contractor in the US. As for switched-capacitor filters, they have lost popularity as filtering is now more easily done in the digital domain. Texas Instruments acquired National Semiconductor (and the MF10) in 2011; TI's website shows the MF10 as active but expensive and out of stock, so it's probably no longer being manufactured. State variable filters are still used in the synthesizer world both because of their flexibility and because they provide low-pass, band-pass, and high-pass filters in one unit. For more, follow me on Bluesky (@righto.com), Mastodon (@[email protected]), or RSS. Thanks to CuriousMarc for providing the IC. AI statement: Despite the presence of the em dash, no AI was used in the writing of this article (details). Notes and references Once we found the "HF-10" part number, a search turned up a National Semiconductor databook that confirmed that the Harris HF-10 was a direct replacement for the National Semiconductor MF10. It remains a mystery why the Harris chip is externally labeled "F1-10-5" rather than "HF-10". This format doesn't resemble other Harris part numbers. I would suspect a military part number, but it is completely different from the military formats that I've seen on other chips, such as JM38510 numbers or NSN numbers. ↩ You might wonder why the larger capacitors are formed by connecting eight smaller capacitor squares, rather than making one capacitor that is eight times as big. The reason is to get better matching between the two capacitor sizes. A capacitor that is eight times as large won't have exactly eight times the capacitance due to factors such as the behavior of the electric field around the edge of the capacitor, inaccuracies that may make the capacitor slightly larger or smaller than desired, or etching variability around the edges. By building larger capacitors out of identical smaller capacitors, the values can match very well, up to ±0.01% according to The Art of Analog Layout. (With laser trimming, matching of ±0.001% is possible, but that is much more accuracy than the MF10 required.) ↩ Most chips from this era have a single layer of polysilicon, so I was surprised to find two layers in this chip. I've seen two layers of polysilicon before, in the MK4116 DRAM chip and AMD's LANCE Ethernet chip. In both cases, the second layer of polysilicon was used for storage devices. ↩ A standard op-amp integrator is an inverting integrator, and the output is negative. However, the MF10 uses the four-switch switched capacitor that inverts the input voltage. The two negatives cancel out, so the MF-10's integrator is a non-inverting integrator. See Introducing the MF10: A Versatile Monolithic Active Filter Building Block for details. ↩ To remove the metal layer, I used Whink rust stain remover (1.5-3.5% HF) to remove the oxide layer and hydrochloric acid to dissolve the metal. I applied Whink for 20 minutes and HCl for 16 minutes in total. I alternated each chemical for about 3 minutes each, applying a few drops at a time. I examined the die under the microscope after each application to gauge the progress. I stopped at this point since the metal was removed and the underlying transistors were visible. Moreover, the silicon became differentially stained, with NMOS transistors significantly darker than PMOS transistors. Some more Whink would probably improve the appearance of the die, but the risk is that the polysilicon might get removed, which would be bad for reverse engineering. In other words, I'd rather stop too early than destroy the features that I want to see. ↩ For reference, the full block diagram of the chip is below, from the datasheet. Block diagram of the MF10 from the Texas Instruments datasheet.  ↩ The filter frequency of the MF10 can be set to either the clock frequency divided by 50 or divided by 100. You might wonder where these ratios come from, since the capacitors on the chip are in 8:1 or 16:1 ratios, not 50:1 or 100:1. The formula for a switched-capacitor integrator is that the filter frequency is the clock frequency divided by 2π times the capacitor ratio. (This can be derived from the op-amp integrator formula and the equivalent resistance of a switched capacitor.) It turns out 2π×8 is 50.27 and 2π×16 is 100.5, providing the 50 and 100 values. Note that these values aren't exactly 50 and 100; they are off by 0.5%. Curiously, the datasheet specifies that the typical frequency error is ±0.2%, significantly smaller. I suspect that the explanation is that the capacitor ratio is not precisely 16:1, due to stray capacitance in the wiring and other factors, and the designers ensured that these factors tweaked the ratio in the desired direction. ↩ I suspect that the ternary input pin was used because the chip didn't have enough physical pins for all the functions they wanted. Note that the two filters are entirely independent, even with separate clocks, except for the 50/100 ratio control and the A/B mode control. I'm sure that these two functions would have independent control pins if the chip had pins available. They could have used a standard 24-pin package for the chip rather than the somewhat unusual 20-pin package, but maybe they had a motivation for avoiding a much larger 24-pin package. ↩

8 hours ago • 1 votes
Radxa's Q8B has 2x the performance and expansion of the Pi 5

There was a time I'd look at a board like the Radxa Dragon Q8B (at left, above) and be like, "there's no way I'd spend $209 on an SBC with 8 gigs of RAM". But we're in 2026, and seeing the 8 gig Raspberry Pi 5 going for almost the same amount, I figured I'd give it a shot. On paper, the Q8B beats the Pi 5 in pretty much every way. A lot of that is thanks to this Snapdragon 8cx Gen 3 chip, which is the same chip I tested on Microsoft's Windows Dev Kit 2023.

2 days ago • 1 votes
Three years later

Reflections on October 7th

3 days ago • 1 votes
The Sting

The Sting belongs in the pantheon of films I'm deeply embarrassed to have not watched earlier. Not just because it's a great film — and it is — but because it is so incredibly my shit that I feel retroactively spurned for not having watched it sooner.

3 days ago • 1 votes
It's a Gas!

If everything worked as well as the product called Evapo-Rust, the world would be a much better place. That’s just one of the many lessons learned during my recent — successful! — project to transform my old, nonfunctioning gasoline-powered generator into something much better.

4 days ago • 1 votes
📚 BoredReading

You seem to be enjoying this.

Join free to unlock everything.

Create free account

Already have an account? Sign in