Updating The Language Of SPI Pin Labels To Remove Casual References To Slavery

This morning the Open Source Hardware Association (OSHWA) announced a resolution for changing the way SPI (Serial Peripheral Interface) pins are labelled on hardware and in datasheets. The protocol originally included MOSI/MISO references that stand for “Master Out, Slave In” and “Master In, Slave Out”. Some companies and individuals have stopped using these terms over the years, but an effort is being taken up to affect widespread change, lead by Nathan Seidle of Sparkfun.

The new language for SPI pin labeling recommends the use of SDO/SDI (Serial Data Out/In) for single-role hardware, and COPI/CIPO for “Controller Out, Peripheral In” and “Controller In, Peripheral Out” for devices that can be either the controller or the peripheral. The change also updates the “SS” (Slave Select) pin to use “CS” (Chip Select).

SPI is widely used in embedded system design and appears in a huge range of devices, with the pin labels published numerous times in everything from datasheets and application notes to written and video tutorials posted online. Changing the labels removes unnecessary references to slavery without affecting the technology itself. This move makes embedded engineering more inclusive, an ideal that’s easy to get behind.

[2022 Editor’s Note: The OSHWA changed its recommended naming to PICO/POCI for “Peripheral In, Controller Out” and “Peripheral Out, Controller In”. Fine by us! I’ve updated this throughout the rest of the article because it doesn’t change Mike’s original argument at all.]

The Technology Itself

Even though the terminology needs an update, the approach to how SPI data lines are designated is one of the best of all protocols because the *O*I/*I*O format stays the same even when the device changes. This is easiest to understand when thinking about a microcontroller that can act as either the “Controller” or “Peripheral”. A controller will always send out its data on the PICO line (controller out) and receive data back on the POCI (controller in). Now, the same device acting in the peripheral role retains the exact same pin labels. It just begins listening on the PICO line (peripheral in) and sending on the COPI line (peripheral out). Under this naming scheme, the controller is always the device that controls the clock.

The SDI/SDO labels have most commonly appeared on devices that lack the ability to serve as an SPI controller (think sensors or LCD screens). But here’s the problem, when you have three or more chips in a design, which SDI lines get connected to SDO lines? Even with two chips, if one port is called SDI and the other is called SDO, what name do you assign to the wire? It’s the UART RX/TX problem all over again.

Retaining the PICO/POCI paradigm, the problem is answered without any knowledge at all of function: all PICO lines should be connected to one another, as should all POCI lines. Brilliant.

We Can All Decide to Make This Change

SPI is a de facto standard which Motorola published starting back in the 1980s. It’s simple and it works well, becoming one of the two most widely used chip to chip communication protocols along with I2C. But it’s not governed by a ruling body. That means, to change the pin names, all it takes is for people to decide we should change them. That’s what’s happening here.

With hardware manufacturers like Sparkfun and Adafruit, and the Open Source Hardware Association adopting the SDO/SDI and PICO/POCI labels, the effort gets a jump start. I encourage you to make the changes in your own schematics, software, and documentation.

The hardware world isn’t the only place removing references to slavery from design specs. The OpenZFS project changed references to “slave” in the code base to “dependent” which was also abbreviated as “dep” for variable names. An article in Ars Technica published on the OpenZFS change also references a paper published by the Internet Engineering Task Force (IETF) standards organization recommending a shift away from oppressive language being included in defined standards.

The history of slavery is a dark and disturbing one, and its casual inclusion in engineering can be hurtful. In this time of introspection sparked by massive protests over racial inequality, systemic racism, and violence within law enforcement, this is one small but meaningful change the hardware world should choose to adopt. And one that I wish had been adopted long ago.

288 thoughts on “Updating The Language Of SPI Pin Labels To Remove Casual References To Slavery

  1. How does changing the name of a term make something more inclusive? There is nothing stopping anyone from being interested or working in the field.

    1. If you insist that there’s no racial biases preventing POC from entering tech fields then you must live in one really nice bubble where you’ve never had to hear about it, and have therefore been complicit in it. It is absolutely a thing, don’t pretend it isn’t. Bringing visibility to issues of race in the field can only be a benefit.

      1. Nothing in this discussion requires only POC to have been enslaved. It’s very much unclear to me what the purpose of your comment could possibly be, other than to derail the discussion, so maybe that’s valuable to think about for you.

      2. He is saying nothing of the sort. Do you really believe that people are prevented from entering a tech field because there is “master” and “slave” written in some IC’s datasheet? Don’t be ridiculous.

        Of course there is racism and racial biases. And of course those should and need to be addressed. But rewriting a datasheet to erase a perfectly valid term in the name of a crusade against racism does absolutely nothing to that effect.

        And what will be next? Are we going to stop teaching kids about ancient Greece and Rome (“Hey, they owned slaves!”)? Or about nazis? (they used slave labor in factories and to build a lot of fortifications during WWII) Or not before we have replaced all mentions of slaves and slavery with some politically correct term that nobody will understand?

        People aren’t offended because an IC has a master or slave role. They are offended and protesting because their human rights are being denied and trampled on, only because of their skin color. And many also because we, the whites, are desperately trying to “do something” to assuage our guilty consciousness – by doing ridiculous things like renaming “master”/”slave” in SPI so that we can feel good about it – all the while no real changes of consequence are made.

      1. I seriously doubt that your culture is untouched by slavery, considering it was a ubiquitous, world-wide phenomenon predating written history.

        1. While that may be true, the USA was the only country that wrote into it’s constitution that Black slaves and Native Americans WERE NOT CITIZENS! Some states stuck to this principal right up to the 1960s, and unofficially beyond. If you want to be treated as a civilized country you need to understand this. This is not a big change in the way of things, but it symbolizes a long over due change of attitude. Any other view has no legitimacy.

    2. This is not stupid. It just doesn’t affect you negatively. However, it does affect other people negatively, so why not have a little bit of empathy.

    3. Are you suggesting that “Master” “Slave” is more descriptive than “Controller” “Peripheral”?

      The fact is you understand the former because of the historical context it derives from.

      Therefore, remove those terms, and use the direct, descriptive, better terms.

      Better, not just because they are inclusive (unless you self-identify as a mouse, keyboard or printer), but they simply are better terms for what is happening.

    4. There are lots of things stopping people working in the field. Just because we don’t see them does not mean they are not there.

      By changing these symbolic words we are saying any racism however seemingly insignificant is not acceptable in the electrical engineering community.

      I just don’t get why people are so resistant to this change. It is not like you are being asked to update all the world’s documentation right this moment.

      1. more like it makes it seem like the problem is symbolic and insignificant so not only does it do nothing to help it also make people think that there probably isn’t a problem

  2. I’m honestly all for it, especially the inclusion of the SDO/SDI acronyms. I hated the MISO/MOSI acronyms because they were just kinda confusing to me. Also changing Slave Select to Chip Select just brings SPI more in line with a lot of other digital protocols that I’ve seen that already use CS.

    I like this quite a bit.

        1. No. This is an unserious topic being pushed by unserious people, and these ridiculous frivolous changes should NOT be treated seriously.

          If you think this is serious, then you are not a serious person.

        2. Humor can de-escalate tense situations and remind us that we’re all fallible. It says, “hey, we’re going to make it through this.” Ren is proposing a third position that’s funny for its absurdity and falls between the two polarized camps.

          If we all started saying “yes, and” to that and coming up with other humorous reasons to be for or against it, then both sides of the debate could walk away having felt connected to (safely absurd) opposing arguments, which can lead to better understanding of the *actual* opposing arguments as you think about it later.

        3. Jokes are a form of interaction. If people can’t poke at the jello surface of a topic and see how it jiggles collectively, the topic may as well just be an edict floated down from an ivory tower.

          I don’t know if there is a need for action from the readers, it seems handled, but if you’re saying jokes are disallowed, then I will pretend I didn’t see this article.

    1. I was working with SPI last week and just thought to myself I love how MISO (master in slave out) and MOSI (master our slave in) are brilliantly clear.

      I still have to draw on paper when I router UART lines to make sure I’m connecting TX to RX as foolish as that sounds.

      1. Controller and Peripheral are more descriptive than Master and Slave.

        And let’s be honest, you understand Slave primarily because of the historical context.

        The fact is that there are millions of people in a certain area of the world whose ancestry is defined by (relatively recent, we’re not talking ancient Greece or Roman Empire here) slavery. Let’s not diminish that horror by using it as a glib term in our field, now that we have been made aware that these people have been living under the results of this slavery.

        I also don’t think this is something worth arguing with ‘well, actually’ arguments. Let’s not go there.

        1. I will admit to entirely not considering these issues in the past. There is no blame to having used them when you weren’t really aware. Now, being aware, it’s easy to improve everything about it.

          And yeah, there are other meanings as well, best keep those engineers focussed and undistracted, I say! Fans of LaTeX are bundled into the masochism bin though.

        2. “Controller and Peripheral are more descriptive than Master and Slave.”

          Peripheral is more descriptive than slave. A peripheral is not necessarily being controlled by anything, it just isn’t in charge of the communication bus.

          Controller though implies control, pretty much the same as Master.

          Coordinator/Peripheral. Now that’s a descriptive pair of terms.

        3. Controller and Peripheral are pretty ambiguous overloaded terms.

          Let’s take a keyboard controller. It has the I2C peripheral, say with port expander attached over the bus. The peripheral can also be referred to as the I2C contoller. Then… is the keyboard controller I2C controller the controller or the peripheral?

          On the same chip, there is another peripheral, the SPI controller. By this bus the chip is hooked to the other chip, say the main controller of the machine.

          I see here a potential for a great Monty Python sketch.

    2. I’m of the opposite opinion. I favor MOSI/MISO because there’s no ambiguity. The meaning of SO and SI change arbitrarily. Is it Serial Out from the peripheral’s perspective or the master’s? Manufacturers neither agree, nor do they specify.

  3. I do not support this. Computers cannot be enslaved. Drawing moral equivalents between humans and computers is insulting to the humans.

    1. Is this a joke, or do you really not understand why this change was made? I’m genuinely confused.

      Nobody is drawing an equivalence between humans and computers.

    2. I have to agree with you…

      This is stretch. My understanding of the situation is that people of color want equality and to not be beaten/shot/choked to death by the police. This seems like a knee jerk reflex at best. The intention is good but the action is pointless. It does nothing to address the actual issues at hand. It simply screams “look, I’m not racist because I changed this one thing that wasn’t actually a burden on anyone!” You’re not helping. Your just trying to avoid the very slim chance that someone might call you a racist for a coding/hardware convention that you didn’t even create.

      Do something more constructive, let your employees have an extra day off or two to go join a protest, vocally support the movement by saying so officially as a company, donate actually money to a group or organization that is actively working to end racial inequality.

      There was a simpler way to deal with this if it was truly an issue. Switch to Master/subsidiary, that removes the slavery reference and allows the acronyms and coding to remain the same going forward.

      1. > slim chance that someone might call you a racist for a coding/hardware convention that you didn’t even create.

        It’s not a slim chance. Guilty by association is the name of the game – it’s the whole premise of “check your privilege”, or intersectionality, where you are not considered an individual at all, but part of a caste that is defined by your biology, your cultural history and/or your personal ancestry, regardless of your own opinions or manners. When you are cast into the category of “privileged”, you are judged by different standards that do not allow you to say certain words, have certain opinions, or do certain actions which the other castes can freely do, because the meaning of these words, thoughts, or actions is said to offend the other castes.

        It’s basically the same as racism, such as when people of color weren’t allowed to sit at the front of the bus or drink from the same fountain, or go to school, because it offended the whites. But the irony escapes the adherents; they’re doing it because they’ve assimilated the concept and started to believe that they have to apologize for their own existence through proselytizing and blaming others of the same sins.

        1. It might be important to point out that “when people of color weren’t allowed to sit at the front of the bus or drink from the same fountain, or go to school, because it offended the whites.” was never a policy of the US government. It was policy on some States and in some businesses. The abolitionists stayed active throughout Jim Crow and eventually got Federal laws to prevent this discrimination. The time it took and the many places are one of the costs of not being a dictatorship.

          1. That’s tangential, but true.

            At least we have hope that intersectionality doesn’t define state policy, because that would create a whole new system of apartheid.

            It’s supposed to be a theory about how different structures of oppression interact, but it’s not exactly falsifiable because the theory is meant to be used to correct for this oppression, and therefore creates new hierarchical structures which change the ones you already observe. Compare for example to the Marxist societies and the theory of class warfare, where communist revolution actually created a new set of classes with oppressive relationships, but kept pretending that the old set of classes were still valid and in force. The victims become the bullies, and justify their bullying by claiming they’re still the victims.

    3. This is not about the computers or chips or PCBs.

      This is about the people who have to work in the field. It’s about not excluding those with a recent race history of slavery from having yet another barrier to working in the field. It may not be directly upsetting, but it’s simply using a term that is unnecessary, and only works because of what slavery is.

      Again, controller and peripheral are better terms for the roles of these entities in a system. Better terminology as a result of this is a win – no need to stay with the lazy terminology.

      1. Sarg and Grunt maybe? (You forgot that the majority of West African slaves went elsewhere. British and French West Indies got over 40%. Brazil got 32%. The US South was less than 6%. (East African slaves went to the Middle East).

      2. Could you come up with something with even more syllables, please? And, pretty please, with an acronym that has to be spelled by syllables instead of just rolling off the tongue like a monosyllabic word?
        …if possible, something that can be misinterpreted as the other one if hastily told over phone?

        Apparently, the more syllables the more virtue…

      3. Well said. If the tables were turned, it would be just as easy to argue that changing the use of master and slave is an attempt to erase the suffering of people who live as slaves, and that we should keep it to remind us how awful it would be to treat people like we treat machines. Each time a new ideology comes to power, somebody new will have a reason to object.

        Meanwhile, the churn in technical language raises the barrier to entry for people who didn’t grow up with engineers for parents.

    4. I too do not support this. It is political correctness gone mad. The next thing will be to remove the words “master” and
      “slave” from the dictionary. That is very dangerous. We need to acknowledge the terms so we do not loose them. Just ignoring the words does not help all those who are enslaved. It is just pretending it does not happen.
      We need to fight slavery, not hide it, and this is hiding it!
      True Speak anyone?
      Master and slave are valid terms, and very well describe the chip’s relationship.

      1. You know nothing about Ren, and we know nothing about you. For all we know, you’re both sockpuppets of the same person. So making assumptions about someone’s character here is useless. Stick to what they wrote.

      2. Are there schools out there that are actually not teaching this history of slavery? Seriously, I want to know. Is that a thing?

        In my school, in the 1980s so before the current “conversation” where maybe one person was mexican, no one was black and pretty much everyone was white they taught about slavery and jim crow laws. And they taught that it they were pretty terrible things that we don’t want to repeat.

        So when I read this kind of stuff I have to ask “where is this coming from?”.

    1. True.A s Eisenhower said while touring N.zi camp after the war to correspondents: “.. take good pictures of it all. Otherwise, some as..ole will claim it never happened.”

    2. Agreed. There are already Conservatives in the southern USA claiming slavery didn’t happen and that it’s a Liberal hoax.

      Mistakes of the past should be kept in view at all times, to avoid repeating them. See China today versus the Nazi holocaust.

  4. That would be great! When I first met this notation, it was quite an unpleasant experience, I generally accepted it only because I thought “ok, I’m not from this culture, maybe here master/slave words don’t have this huge negative narrative, I should not think too much about it”. At least I can’t imagine how someone from my culture could have used such naming in electronics if it was their choice. I’m really glad that now I have a good alternative :)

    1. Indeed. People may have empathy even, but that doesn’t mean they have real understanding, nor lived experience.

      It’s a simple change, the replacement terminology is clearer and better, nobody is blaming anybody or saying older white engineers want race subjugation when they don’t, it’s simply a win-win.

      No need to be so conservative in thought that you cannot adapt a better terminology for the description of things. Controller-Peripheral, Leader-Follower, Lead-Replicant, and so on, they describe what would have been called Master-Slave in better ways, for what are different behavioural patterns.

      1. Eastern Europe. Don’t ask me why I feel it this way, I have no answer myself. Maybe it’s somewhat related to huge restrictions of freedom in USSR about which I know probably too much, not sure.

          1. More so – minorities here are oppressed even today (LGBT as a most common example, but sometimes by race as well), and I’m in a constant fight with it (most often by words, but sometimes physically too). That’s the reason I find master/slave terms so offensive – I have enough of this shit in real life, why bring it into electronics, and in the way that you have to create slaves with your own hands?

    2. I’m curious about your experience, and the experience of others who have run into this terminology. To me, it has always been obvious that this subservience which is distasteful in human relationships is valuable in machine relationships. So I simply do not understand, and until your comment here (the_3d6), I never saw anyone say it made them feel uncomfortable themselves.

      What background do you come from? How was it unpleasant? Did it make you feel unwelcome? Was it hard for you to understand? Do you think it causes people to avoid learning too much about computing, or seeking careers in computing?

      Thanks! I hope these come off as genuine questions because this perspective you bring is something I have not seen before.

      1. (backgroung)
        Eastern Europe. I just know that slavery is plain wrong – both intuitively and logically. Even my parents experienced a severe freedom restriction in USSR (not comparable to the state of slaves, but gives some vibes), a couple of times they were almost getting in serious trouble with military or police when we traveled together – and I remember that fear. I didn’t know what they were afraid of, only much later I realized what could have easily happened. This feeling of complete lack of any rights in the face of authority – I feel only a shadow of what my parents experienced, and it still is more than enough.

        (answers)
        And somehow I felt highly uncomfortable that I’m making one device “slave” and another – “master”. I mean, there is no reason to use those words. I’m not taking away any freedom from them, I’m not giving them any privilege – why should I apply those words then? To me freedom has a very clear meaning and value (I’m from Kyiv to be specific, and during revolution I was literally risking my life for freedom) – and those words are about taking it away.

        I didn’t feel unwelcome by any means, but not only I was struggling to understand why those words are used at all, I also was confused by them, I was looking what is going in the SPI protocol so they are named this way, what I saw wasn’t similar to master/slave relationship at all – so I was thinking I’m missing something important :)

        I don’t think it can stop someone from learning – but it definitely adds a layer of negative associations and I’m quite sure it was a reason why I was preferring I2C for a long time (from a technical perspective, SPI fits my projects and overall design approach much better and once I started using it, I dropped I2C completely – but initially I’ve made a choice in favor of I2C).

  5. IMHO, it is not wise to delete all references to slavery. It is more a reminder that we were wrong and how we are growing, than an apology for those acts.

    1. So changing the pin labels on digital devices also magically erases the history books that can also be used to learn about bad things that happened and how we can avoid repeating them?

    2. This is a terrible argument. Nothing about using “slave” on a pin serves as a useful historical teaching tool. If you’re concerned about this, please fight for making school material more reflective of our actual history.

      1. > Nothing about using “slave” on a pin serves as a useful historical teaching tool

        If it has no connotation to slavery, then there’s no reason to object to it. But that’s precisely the justification for the change: that it does remind people of slavery. GdS uses that reminder to reflect on why slavery was bad, which is a perfectly valid thing to do.

      1. As a person with slavery in his family history, no it doesn’t.

        What does bother me is the prospect of having to revise 30+ years of documentation because some people, are offended by a technical term. Obviously such people don’t get their MASTER degree.

    3. Y’all really out here having moments of silence while routing your PCB? Just change the signal names and leave the history lesson for the history books.

      1. So instead of doing anything productive, I’ll spend the next few years changing signal names in thousands of documents?

        No thanks. Just change the names on your end to something that won’t offend you.

        1. And then people like you are complaining about stupid laws that make them do a stupid work :) That what happens when people are telling you “stop hurting me” and you are answering “I don’t care, do something yourself”. They do something on their end, and chances are, you won’t like the result – it definitely would be worse than compromise if you’d listened.

  6. The concept of controller and peripheral comes from the relationship between devices in s technical system, while the concept of master and slave comes from something people do to other people. There is no rational reason to be against these changes.

    1. The rational reason to be against it is simply costs. Changing every bit of documentation refering to MOSI/MISO just for the sake of it is plain stupid. And to anticipate the point that only new stuff gets new labels: you’ll have a hell of confusion which also wastes precious engineering resources. The whole case is just that: a tremedous waste of resources for no good reason other than virtue signaling. And this is a very rational reason imho.

      1. > Changing every bit of documentation refering to MOSI/MISO just for the sake of it is plain stupid.

        Thank you. People in favor of this clearly don’t have “Master” degrees in engineering, let alone any professional engineering experience. A change like this is a 5+ year project and will require the full attention of engineering teams that could be doing something more important.

        1. A “master degree” is a bit different. One can be said to “Master” a topic meaning to thoroughly know and understand it. Or they can “Master” a skill by becoming very good at it. Neither has anything to do with whips, chains and taking a person’s freedoms away.

          No doubt there is some entymological between those two meaning but they are very distinct things. If a movement develops to rename “Masters” degree I will agree with you that it’s dumb although I don’t really see any reason to care.

          This is not the sense in which “Master” is being used when talking about an SPI bus. It’s about the concept of control. Also, I would be interested in what examples you would use for the word slave. I can’t think of anything except examples where it means something that is being controlled with the oldest and obvious source being someone not something as in slavery.

      2. This change requires about zero efforts. You simply start using new terms, and some wiki article tells about history of MOSI/MISO and COPI/CIPO. End of story.

        Will it bring some confusion? Yes. How much? About 1 failed iteration per about 5 engineers in the field. That’s it. No repeated failures. UART still brings such errors, failed iterations again and again, I doubt there is an engineer who never mixed it at least once. And it still exists, with its naming. So if you are complaining about costs in this context – you don’t have a clear vision of the field.

        1. No. Check the article. They are actually calling for changing existing documentation. That seems to be what has a small subset of commenters here up in arms. I don’t see why though. There are no language police. If you don’t want to change your old docs then don’t! What’s it hurt to use a different pair of words going forward though?

          1. What I saw is that they are willing to change old documentation when possible, starting with most popular documents – I would interpret it as “if you are making an update in the docs, please consider changing names as well” :) Anyway, it’s nowhere close to a censorship. Any mandatory requirements for old docs would be insanely stupid thing, but as far as I can tell, that’s not about it

          2. > What’s it hurt to use a different pair of words going forward though?

            Because then you have TWO pairs of words to look for in the existing body of the documentation. Annoying, confusing, adds unnecessary effort and cost and potential for mistakes.

            Chances are that the new terms will be ambiguous, overloaded, and have too many syllables.

            First solder that doesn’t melt nor properly wet (but you can eat it), now this… makes one want to leave engineering and retire as a grumpy old man.

          3. Your reasoning leaves no room for anything to ever change.

            Yes, this change may involve a small inconvenience for you, and this change does not target your own personal benefit. I hope you can look at the needs of others and realize that sometimes people can deal with an inconvenience to help others.

  7. Virtue signaling. Nothing more. With the result of established terminology having Yet Another Alias and a nightmare in keyword searching between documentation old and new.

    With the large body of existing docs and designs, this will have the effect of confusion, likely frustrating more newbies away from the field than how many could be possibly attracted by th emeaningless name changes.

    1. Right because no terminology in electronics has ever changed. Nobody used to call Hertz anything other than Hertz (cough-cough cycles, or even better, kilomegacycle for GHz). The Capacitor was always a Capacitor, nobody ever called it a Condenser or something silly like that.

      Language changes and it’s been pretty widely experienced that differences in old vs. new terminology is something that just gets dealt with.

      People are intelligent enough to manage, and insisting that it’s going to be super hard because the names are slightly different is simply insulting everyone in the field.

      1. It is pretty easy once you have the concepts already understood. Then the old literature makes sense, it’s just another dialect.

        When you’re new, all the synonyms for the same thing can be pretty damn confusing.

        Then there’s the grep and keyword search. I doubt google will automatically make a synonym.

        And more confusion. Take a multimaster I2C bus. The slaves can be controllers themselves, so multicontroller bus suddenly leads to ambiguities in interpretation. A peripheral can act as a master to another peripheral in a chain.

        I wonder how many are afraid to speak up in the current climate, out of fear a comment like such could make them unemployable.

        1. I think that the people who are already having a hard time finding jobs because of racial bias and discrimination don’t particularly care that you’re having trouble finding a job because you apparently talk about how much you love master/slave terminology on the internet.

        2. Exactly the terms are accurate and descriptive of their function. Just calling them serial in and out is ambiguous.
          If the word slave is has too many negative connotations for you suggest Subordinate/Subject to keep the acronym the same as well. Or something like employee if you really want to mix up everything for everyone over a single damn word being used correctly to describe the situation between the chips.

          Unfortunately these days even saying something tangentially related to a Political Correctness issue seems to be enough for the Tar,Feathers and whipping through the streets (at least metaphorically by the news and media should you be a personality of note)… Or at least loosing your job.

          Like that thing recently when JK Rowling said something flippantly along the lines of ‘there’s a word to describe those that bleed monthly…Woman’
          Its a fact that the word exists and its not anti anything to say that is what this word has meant for eons, lets not make things confusing by avoiding and re-writing it. And so far the media has managed to drag up nothing else (no matter how out of context they could make it) that shows her up as intolerant.

      2. > Nobody used to call Hertz anything other than Hertz (cough-cough cycles, or even better, kilomegacycle for GHz)

        You’re aware that Hertz is still the standard SI unit for frequency, right? And still in common use?

        New names come about, but I don’t know of any technology terms that were blanket censored from the industry.

    2. I disagree. I think jargon changes are a common occurrence, and documents like datasheets can be updated as everything is digital these days.

      This change is not only possible, but it’s reasonable to remove hurtful language that isn’t required. Serial Data In/Out has already been used for years, and Controller Out Peripheral In makes as much sense or more than the original labels.

      This name change may feel meaningless to you, but it doesn’t feel that way for everyone. Please consider supporting things that take into account the needs of others.

      1. We had a recent (circa 2017) meeting about some terminology changes in our core base (in fact in the spec for contractors) and one thing that came up was that “Serial” is opposed, albeit by a tiny minority, as it reminds some of people serially abuses/raped.

        There was some technical objection to some of the other ideas and as a result as far as I’m aware there was no follow through on the meetings.

        It was a bike shed matter at the end of the day, but I’m glad there were no changes made because the idea that a slave IC reminds anyone (or should do) of human slavery is ridiculous.

        1. Well, serial by definition means one-after-another, it is not emblematic of a problematic term in itself, only when used in conjunction with the other words.

          A serial protocol really should not trigger any thoughts about criminal behaviours.

          I mean, we don’t call mass-murderers ‘parallel-killers’ do we? But if we did, we wouldn’t want to reword children’s geometry textbooks.

          But maybe we should concern ourselves with kill, as in kill -9. That’s murder! Maybe the command should be ‘stop’ or ‘halt’.

          Anyway, I’m all for killing ‘master-slave’ as a term and replacing it.

          (aside: I once worked – within the past decade – at a company who had custom IRC plugin called ‘rape’ and they didn’t see any problem with it, despite having female employees, and not actually being bad people themselves, they were just blind to it, they hadn’t lived it)

      2. > documents like datasheets can be updated as everything is digital these days.

        You clearly have never worked in the industry. Yes they can be updated, but it is a laborious, time-consuming manual process.

        If my company has to divert whole teams of engineers to making this change, it will mean massive loss in productivity. This means less revenue which means less growth, fewer new hires, or even layoffs.

        How many layoffs is this change worth? How many ruined lives?

      3. Just because jargon changes are common that doesn’t make it a good thing. There is a cost as old knowledge becomes harder to access both on paper and when old-timers and young people try to communicate. I strongly believe it would be better to have very static technical terms.

        But that doesn’t mean they have to be the same terms we have now. Let’s fix the problems we have now, including both slavery references and just things which are misleading or just not descriptive. But after that lets NEVER change anything again except to add new terms for new inventions.

        Let’s make Master/Slave Coordinator/Peripheral.
        Let’s go back to cycles instead of hertz (but keep giga, not that old megakilo thing)
        Let’s teach electronic current flow instead of conventional.
        Use Metric for measurements.

        I’m sure the list could go on.

        But once it’s done, that’s it! No more changing it! I want a future archaeologist to be able to read my schematics!

      1. On its own it’s just noisy and annoying and easy to ignore.

        Once you get to renaming streets you are in the world of local confusion. Streets and subway stations got renamed after the Revolution and it took quite a while to settle down. Thirty years later I still sometimes remember the old name first.

        Once your efforts spill into something more important, like established technical terminology, the whole world gets significantly inconvenienced, frustrated and confused.

        The new replacement terms will likely be more ambiguous (“controller”, but… does it act as a master or as a slave? there are two controllers talking with each other![1]), easier to get wrong, competing with the established and resulting in both false negatives and false positives in searches. (Acronyms tend to get overloaded. Google doesn’t care that much about context. So now you have to exclude the falses for BOTH sets. Even the best search engines out there generally don’t support full regexp queries.)

        [1] Easy when you run out of capabilities of a chip, and then split the task between two that have to communicate, things get tricky. Whole unit controller, display controller, servo controller, each can be slave on the bus.

        1. What a twisted logic, how two controllers are more confusing than two masters? Or you are unable to distinguish between controller role in the protocol context and controller role in some abstract device functionality context? :)

          Basically you are telling “for me it’s easier to use existing terms so let’s use them because I don’t care if someone doesn’t feel ok”. You don’t care that, for example, I literally can’t write “slave” in google request because this word has too much negative context for me (and that’s wile I’m from Eastern Europe, I can only imagine what it is for POC in USA).

          Well, at least it’s definitely not virtue signaling, that part is clearly out of question ))

          1. Two controllers are confusing when you don’t know which one is the master and which one is the slave. Is the main one the display controller, the servo controller, the keyboard controller? Who rules over the bus?

            Controller is the chip. Master is the chip’s role on the bus. Slave can be the same chip’s role on its other bus. Simple as that.

            Same East Europe here, even some history of family suffering[1], but for some reasons I have no oversensitivity over words.

            [1] Let’s not play the Oppression Olympics. It’s not relevant in tech field. Or, shouldn’t be.

        2. When you have a communication protocol, you should have enough mental capacity to distinguish between overall device purpose (controller of something) and its protocol role (controller in this particular SPI bus). The same goes for documentation context (SPI/I2C controller vs servo controller – and yes, servo controller can be SPI peripheral, I see zero problems with it). If you don’t have this mental capacity, then use of different terms isn’t likely to really help in the long run :)

    3. How is it virtue signalling if POC tell us “we find this wording problematic”, and we react to it by changing the wording? That’s just basic human decency.

      1. “if a POC tell us”

        Please stop using noninclusive language. That statement makes it sound like a ‘POC’ can’t be included in the group. I am a ‘POC’ and I consider myself to be part of this group.

      2. If we change or delete every word any one may ever object to, we will end up with a very thin, yet confusing dictionary. Sometimes people just need to shrug and go “meh, it’s about silicon, not about people”.

        1. THAT.

          Those who want to offend will find new words. No real effect.

          Those who want to feel offended – admit it, the rush of the Righteous Wrath feels good! – will shoehorn offensiveness into anything on hand. Thus leading into continuous flux in words and meanings. Renaming things won’t pacify them for long, they will find another Worthy Cause, another Wrong Word.

          1. You just want to believe that because you personally are fine with those terms.
            I was offended by these words when I first met them, and I’m still not ok using them after 8 years in the field. Not a single time I mentioned this anywhere – because I thought in your culture those words are not so offensive and I should just ignore it. Now that I realize that in your culture it’s not better, possibly even worse, I won’t keep it to myself anymore.

          2. > …in your culture…

            I think we’re the same generally Eastern European culture.
            The specifics of our respective social bubbles likely vary.

            I have a list of terms I could be offended by.
            I am not.
            It’s a choice that makes life easier.
            For both me and everybody else.

          3. You are expressing your thoughts exactly like someone who is offended (by the proposed change, I guess) – so you can call it a different word, but what matters is what/how you write

      3. You’ve gotten to the heart of the question in my mind. “if POC tell us” — has that happened? I don’t know if it’s happened or no.t I haven’t seen it, except maybe the_3d6 above. I don’t know if it is virtue signalling, or if it is an actual response to an actual complaint. I don’t know. I’d like to know more.

    4. Not at all. When I entered the field, it was an unpleasant surprise – in our culture (Eastern Europe) those terms are something you don’t use lightly, and definitely not for something neutral like electronics. I don’t like this terminology – and now I have the alternative and I will be using it

  8. Ok, so lets replace accurate terminology with vagueness just to make people “feel better”. We look for precision in our measurements, observations, and work. Should we not also do the same in our language? There was another utilitarian reason beyond it’s universality that Latin and Greek remained the dominate languages in science; they can be VERY exact in what they say. I am not arguing that we go back to these; I am arguing that we try to mirror their exactness. Eliminating and broadening definitions is the exact opposite.

    1. You’re claiming that changing from master/slave to the more technical controller/peripheral is more vague? I’d love to know how you came to that conclusion.

      1. …and what about the situations when the controller, the brain of the device, has a peripheral attached to one of its I2C ports, where the peripheral is acting as I2C master and sending data to the controller? With multiple I2C buses available this can be an expedient way to send data without having to resort to interrupts or polling.

          1. Because these are two established words with precise meaning and little ambiguity.

            But yes, we need more synonyms, more general confusion, more frustration, more missed knowledge because we searched for the too-old or too-new acronym.

          2. The controller controls the peripherals. The Master controls the controllers. You can have controllers controlling controllers, however there is usually one controller that is “King”, and devices that control nothing. We could go to king and serf but then people would complain that it isn’t queen, and serf doesn’t have as immediate of a definition as slave. We are technical people, lets use words in their technical sense. Controller/peripheral is also harder to spell and say than master/slave, which should be taken into consideration.

        1. Yes! Agreed!

          Except that isn’t an argument for keeping the Master/Slave terminology. It’s just an argument that these new terms that are being thrust upon us also suck.

          COPI/CIPO for “Controller Out, Peripheral In” and “Controller In, Peripheral Out”

          Here’s the real problem. The only thing the “Master” or “Controller” is controlling is the communication. It coordinates all communication on the shared bus. If the messages being sent are even something that can be interpreted as a command it might just as well be a command which is sent from the “Slave” or “Peripheral” to the “Master” or “Controller”. It just has to wait until it is told it is it’s turn to do so.

          So, outside of electronics what do you call someone/thing that controls the flow of communicaton?

          How about:
          – Operator
          – Dispatcher
          – Coordinator

          I guess the rest of the devices can be peripherals. That seems ok, they are on the periphery of the bus.

          Like it or not the terms Master/Slave will be changed eventually. And they are likely not going to be replaced with equally “colorful” language. So that means the replacements will probably be with us a very long time. So how about instead of just taking the first terms that one guy decided would solve one problem we have a discussion and pick the BEST words for describing the concept?

          1. Please, make the replacements not only unambiguous but also SHORT!!!

            The longer the word, the more chance for typos.

            And it is discriminating towards those with carpal tunnel issues. Or with dyslexia.

          2. I agree entirely, there are better, clearer terms that don’t infer negative connotations when reapplied back into the human world (slave = dumb device, therefore slave human = dumb person, etc).

            Controller – a device that controls a bus/network (SPI) (Coordinator is another good term, especially if it drives the bus clock, if present)

            Peripheral – a device that listens on a bus/network, follows the controller’s command, and responds (SPI)

            Peer – an equivalent device on a ‘fair bus’ where any entity can send at will (Ethernet)

            Leader – Does things, passes them on to the followers to also do

            Follower – Does an action the Leader did (possibly what it told it to do)

            Replicant – Does a data modification that the leader did (specificity of follower)

            Some devices might be multiples of these – a peripheral may be able to request things of the controller – but that might still only happen when the situation is right – e.g., the controller has sent it a message to allow it to ask that.

            Why doesn’t the industry come together, identify the communications patterns that have been lazily described to date, and make standard terms within these disparate patterns to describe roles that people are all happy with, and we can use going forward?

      1. What if you have two controllers, in master-slave relation?

        Even a humble ATmega controller can be an I2C or SPI slave, to another otherwise equal ATmega. And act as a controller to other peripherals.

        1. Then said ATMega is attached to two separate buses, with the role of a controller on one bus and the role of a peripheral on another. Just like it could have the role of a master on one bus and the role of a slave on another.

          I fail to see the problem?

    2. That’s not how master-slave relationships work in computing.

      That’s not how master slave relationships have historically worked in humans. (Slaves often earned wages, masters had legal obligations to the slaves, many other parts that are missed in this.)

      You are wrong about all of this.

        1. In ancient Roman ruins there are many shop signs saying “X.Y., former slave”. It was common then to be acquired in a war as a haul, learning the language and some trade, then earning freedom.
          Someone more skilled in classical history could pipe in.

    3. I worry about this trend. Client/server isn’t as clear as master/slave, for example, because sometimes the client drives the conversation and sometimes the server does. Fortunately, in this instance, they chose controller/peripheral. I think they’re too long, and I don’t think peripheral is the obvious antonym to controller, and I don’t know how I’d abbreviate peripheral… But when you see both of them together (as in COPI/CIPO), the meaning is clear. They aren’t vague at all. So it works.

  9. OK, I appreciate the good intention, but let’s look at the practicals of it.

    Who’s going to take the time to rewrite that one FAQ text file for that one obscure industrial controller from 2002 which so happens to be running a $50K gasifier somewhere in the middle of nowhere?

    Who’s going to get a paintbrush and some nail polish and change the silkscreen of all the Sparkfun breakout boards out there?

    Who’s going to make it clear that this is just a name change, not a change to the actual electrical standard, and you can in fact connect a MISO pin to a CIPO pin without worrying?

    1. Nobody’s that concerned about changing every reference to a “condenser” or “cycles” instead of Hz in old datasheets or schematics from old radios, so I don’t see why this would be any difference.

      Will it take a little bit of knowledge to know how to apply the new labels with the old ones? Sure. Does that outweigh the potential benefit in not only making people more comfortable but also being more technically accurate? Nope.

      1. > Nobody’s that concerned about changing every reference to a “condenser” or “cycles” instead of Hz in old datasheets or schematics from old radios, so I don’t see why this would be any difference.

        That’s because Hz is still the SI unit for frequency and isn’t being censored. Censoring MOSI/MISO will take a lot more work to erase the fact that they were ever used.

        1. There is no talk about censoring. The discussion is about setting a new standard names. No one would feel better from rewriting old documentation – but acknowledging the fact that existing terms don’t sound great to some people, and using new terms further on would really show that you care (and also would improve quality of the field in general, since existing terms don’t carry any technical sense and are, actually, confusing)

    2. “Find: MISO”. “Replace: CIPO”. “Replace All”. Done. New silkscreens for new boards going forward. No one’s arguing for going back and changing all the existing boards.

      1. Boards are easy. The documentation is the issue.

        – Find/replace
        – Fix everywhere the replace was incorrect
        – Put document through engineering review process (6 months, give or take)
        – Put document through legal review (1 month, give or take)
        – Publish document to web (1 month, give or take)
        – Repeat for 5,000+ documents

        And all this to avoid offending people who’ll never go to college because a “Master” degree is offensive?

      2. Break something obscure deep in the files while doing the automated change.
        Overlook it while reviewing the results.
        Three years later spend three days chasing out a bug in an obscure exception routine that didn’t happen to get called then and during the change tests.

        Every change carries considerable risk and nonzero (and sometimes considerable) cost.

        Forcing a fundamentally unnecessary change through a complex system of hardware, software, documentation and engineers will cause a fallout that you can’t foresee. Or, worse, don’t want to foresee.

    3. Who’s going to take the time to rewrite

      You’re missing it. The whole point of this is to make going back and rewriting the old documents “normal”. It’s to get you accustomed to the idea that Your Betters get to rename anything that upsets them.

      1. Or maybe what happened here is that some people pointed out that they personally found this wording problematic, and then some other people decided to show basic human empathy and decency and work towards changing that wording, and there is actually no conspiracy. It’s just decent people being decent people.

          1. Then you have no empathy, you cannot even put yourself in someone else’s skin and try to imagine how this terminology is a problem. Sometimes its actually about just believing what people say, especially when it’s a sizeable number of people. There are some things you cannot truly understand without lived experience, and for many generationally-well-off people it can be hard to understand other viewpoints.

            To fight against win-win changes like this (master – slave is less descriptive in the industry than the replacement terms which are more concise, although still lacking an industry normalisation) is pig-headedness to the extreme.

          2. Let’s be realistic. The only reason profit-seeking companies would make changes like this is because of PR, not because the bean counters care.

            I suppose you believe Google when they say their motto is “Don’t be evil”.

  10. Pointless. Even when we change every name, every term, every suggestion, when we have sterilised our language until it is void of any term, name or nuance that might offend someone, somewhere, we will still have hate. We just wont have any words to talk about it anymore, or much else for that matter.
    Even doing this action now flags ME a software engineer of 25 years without a racist bone in my body as a racist, because I implement a Master Slave pattern in code or created a blacklist pattern or my git branch is “master”.
    Slavery has little to do with racism. Just go away with this non-sense virtual signalling, context spill, ignorance.

    1. The only mention of racism in the article is that the current wave of protests caused by it are giving an extra push to the adoption of more polite language. Slavery is dark on its own, and the analogy is inaccurate in most cases.

    2. I have to agree, this is just so pointlessly dumb. It’s like demanding we remove words from the dictionary so that no one will ever be offended again (yeah, right. humans just find/make new words).

      Just like every time they change (aka mangle) a website/webapp interface, people will eventually get used to it. But I don’t think that Controller/Peripheral really conveys quite the same meaning at all.

      controller: a person or thing that directs or regulates something.
      master: a machine or device directly controlling another.

      peripheral: relating to or situated on the edge or periphery of something
      slave: subject (a device) to control by another.

      The former works a /little/ better than the latter.

      1. Slave:
        “a person held in servitude as the chattel of another” (Webster’s)
        “a person who is legally owned by someone else and has to work for that person” (Cambridge)

        The key here is that bus masters don’t exploit the “slaves”.

    3. By fighting the change, you embody the problem, if not the hate or explicit racism.

      Master-Slave, Whitelist, Blacklist – we’ve all used these terms in the past without thinking or understanding.

      I really understand that people find it difficult to understand themselves why the terms are objected to. Blacklist? https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6148600/ “A list of people who have incurred suspicion” – is this not exactly how black people are treated by the police?

  11. Great article. This is something I didn’t even consider until recently but I’m glad it was brought to my attention. Obviously people can use whatever language they want but I’m glad projects like OpenZFS have taken the time to think about and implement changes. Changes like this aren’t going to end racism overnight but it’s something simple we can all do that does help.

    1. Changes like this aren’t going to end racism, period. This is stupid. Racism is in how you *THINK* and how you *ACT*. People will simply adopt and appropriate *OTHER WORDS* to mean racist things. That is both the nature of people and the nature of language. This is about the stupidest thing I’ve ever read on this site.

      1. Nobody expects this to end racism. People have made this change to be a little more inviting to people who aren’t white men. Clearly, this doesn’t affect you, so maybe you should engage your metacognition and consider why this upsets you so much.

      2. No one expects this to end racism. I don’t think you are a racist if you use master and slave in a technical setting but put yourself in the shoes of someone who’s recent ancestors where enslaved. Try to think about this from anothers point of view

        1. No different from someone requesting a MALE CONNECTOR and making me think about all the ways that society grinds men under its bootheels. See, we can play that game endlessly. THIS IS STUPID.

          1. If you want to get that changed, then more power to you. I’m sure you could find some people that agree with you to join your cause. There’s no reason why we have to use the word “male” connector. I don’t really care either way, doesn’t affect me

          2. I hate to break it to you but there actually are people out there crying for that one to be changed.

            If that one ever picks up any traction I’ll side with you against it. Male and female are actually a pretty descriptive and accurate way to explain connectors. It makes sense thus making things easier to learn. And neither term, male or female should be considered derogatory or offensive in any way. Anyone who does think so must be a sexist POS themselves, regardless which they identify as or which of those terms offend them.

            But master and slave? FCOL! Ok, it is kind of sort of descriptive (not really) but what was the person who first used those terms thinking? They are hardly the only or even the best descriptive terms available that would fit. It’s like one of those offensive mnemonics that some people pretend to hate except we all really love because they are so hard to forget and we just want to pass our tests or learn to do our jobs. Except.. It’s not a mnemonic that we secretly and quietly pass to our schoolmates. It’s the actual official name! WTF?

      3. It’s not going to end police brutality or cure cancer, but it’s a tiny change with very low impact to make quite a few people more comfortable.

  12. Sorry but this is just ridiculous nonsense.

    So are we going to erase all mentions of slavery and slaves from the history books and elsewhere too, because it could offend someone? Or, as someone attacked me on Reddit for using a word “victim” for victims of a crash because I dared to use it to describe something else than rape victims?

    How does a change like this help anything to become more inclusive? Sorry but this is only doing a lip service so that we can feel good about “doing something”, the same like some vendors are selling kits of pink screwdrivers and tools targeted at women to be “inclusive”. All the while it does literally nothing to address the actual problem of racism (or misogyny).

    Rasists aren’t racists because they write “master” and “slave” in their datasheets and schematic diagrams (where it is obvious what is meant) but because of what they are doing to other human beings. How does a change like this address that, exactly?

    1. No one is even talking about removing mentions of slavery and slaves from history books. Why are you bringing that up? And no one is calling you a racist because you use “master” and “slave” in a technical setting. People just think that references to slavery in code, which is not a history book, could be harmful. No one thinks this will solve racism, no one is claiming that. For some people slavery isn’t a topic just found in history books. It had a real tangible impact on their families lives in the very recent past, shouldn’t we be considerate of that

    2. “So are we going to erase all mentions of slavery and slaves from the history books” – erm… since when is a data sheet a history book? Please spare me the straw men, and think twice before posting such nonsense.

    3. If the first sentence in your argument is a huge straw man, maybe your argument isn’t very good. It might be valuable to understand what exactly you’re arguing against in the future.

      Nobody is asking for mentions of slavery to be removed from history books. In fact, that’s where they belong, but where they’re currently not.

      Nobody thinks that racists became racists because the word “slave” appears in a data sheet, the point is that these words have actual emotional meanings to people whose family tree includes slaves, so while you might be totally okay with using the word “slave” on a data sheet, it can feel alienating to other people, and contribute to these people being excluded from tech.

  13. I don’t mind changing MISO/MOSI to CIPO/COPI if the name bothers some people, but PLEASE FOR THE LOVE OF GOD STOP USING SDO/SDI!!!!

    I have seen far to many schematic errors due to SDO/SDI. Most have been caught in schematic reviews – it is one of the things I always insist we check every time, but I have been called in to debug a failure and found that the design was changed from correct to wrong in the schematic review so DI was connected to DI and DO is connected to DO. Aaaargh! If we use MISO/MOSI or CIPO/COPI then it is obvious that you connect COPI to COPI and CIPO to CIPO. Forcing designers to remember that DI/DO have to cross is a error waiting to happen.

    1. Interesting that it is so difficult to remember that o stands for out and I for in. But when you add another letter all problems are solved. If you can’t remember that txd stands for transmitter and rxd for receiver… Then you might be wondering if you are the right person at the right place.
      An abbreviation is never clear unless you know what it means… Abbreviations are never obvious if you can’t remember what the individual letters mean.
      If technicians are connecting outputs to outputs then they aren’t really that technical.

  14. “Slave” is an inaccurate analogy, because actual slaves work for free to benefit someone who doesn’t. The use in ATA to designate devices 0 and 1 is the silliest of all. The Ars article suggests some better alternatives like “leader/controller/primary” and “follower/replica/secondary”.

    1. Then it’s another reason to change terminology. When I was reading it the first time, I was wondering – what job slave is doing so it’s called so? What are its responsibilities, what is the workload in the communication which is performed by slave? They couldn’t use such a word if there were no work performed by one device, and not performed by other, right? I’ve spent a couple of days to realize that no, there was not a single reason to use these words. Couldn’t believe that for a while, until I implemented the protocol myself, I still was suspecting that I miss something important.

  15. So here it is one of the most unbelievable and stupid things i ever see in my life!
    Thank you USA, if you didn’t exist, some one would have to invent you!
    All this stupid action makes me believe that a world without the USA would be like the circus without the clowns!

    By the way this kind of actions not only are stupid, abut also discredit a problem that unfortunately existis, erasing expressions, labels, brands, etc… , just by trying to stick them to racism is not helping the cause!
    Choose your leaders wisely by vote and call them to Justice when they don’t comply with what they behave and make them accountable, that’s the way to go, not to go on extremism nonsense!

    PS:
    I will continue to use the expression MASTER and SLAVE in technology related stuff …

    1. I’m from Eastern Europe and I was offended by these terms when I met them first time. I still don’t like them and it’s probable that I not a single time used “slave” in technology context, even though it wasn’t convenient to find other ways to deliver the meaning. I’m really happy that this change is happening, and I won’t ever use those words in technology context. All my PCBs will have CIPO/COPI silkscreens :)

  16. POSI – Primary out, secondary in. When it isn’t working you can just use the first three letters as the TLA.
    PISO – Primary in, secondary out – when it isn’t working you can just use the first three letters to describe your mood.

    1. …and when you have a board with a primary controller chip, one or more secondary controllers, each with multiple I2C/SPI buses that can be both master and slave…

  17. I find it very interesting that when a group is doing the least it could possibly do to show support, so much energy is spent fighting it. Renaming MISO and MOSI is such a small token of support just like changing a flag, moving a statue or renaming a git branch.

    If those fighting these small changes would put the same energy in making slavery illegal in the United States (see amendment 13 – it is still legal right now which is a huge problem) and get their local government to reform police actions, this country would be on its way to be such a better place for ALL citizens, not just the few white rich citizens.

    1. it’s a small change for the man but a big screwup for the mankind.

      Having the same thing called fifty different ways is everything but inclusive for the newcomers. Yes, it’s easier once you get through the synonyms and understand that it is all one and the same thing. But imagine you’re a newbie, used to older docs (or newer docs) and suddenly getting datasheet with the new (or old) terminology. Can take hours if you’re unlucky. Took me a while back in the days to find out that TWI is a flavor of I2C.

      At a threshold moment, frustration like this can lead to the board finding its way to the drawer, and the budding interest in electronics losing in competition to some other interest.

  18. Maybe they should change the color too. Black? So racist. White silver pins? Racist. Owning a computer? Racist. Making a comment on my $1,000+ smartphone? Racist. Having a website and being able to write a blog? You guessed it, RACIST!

    1. This is literally nonsense. No one is saying you are a racist by using the terms “master” and “slave” in a technical setting. For some people slavery isn’t a topic just found in history books. It had a real tangible impact on their families lives in the very recent past, shouldn’t we be at least a little considerate of that

      1. No one is saying that it will “magically make those people better, whole and restored”. This is only a single step in the right direction. And why are you bring up male and female connectors. Do the words male and female have negative connotations associated with them ? No. Salve and master do!

    1. I can’t wait until we can get the hell off this planet– and spread our racism throughout the galaxy. No wonder we haven’t found any intelligent aliens yet. They’re all scared witless that we’ll come to visit. (Quick, hide the palladium!)

  19. “Every record has been destroyed or falsified, every book rewritten, every picture has been repainted, every statue and street building has been renamed, every date has been altered. And the process is continuing day by day and minute by minute. History has stopped.”

    People, 1984 was a warning, not a manual.

    I am reading news articles these days that a year ago I would have assumed originated on The Onion, like a cosmetics firm changing the name of their whitening creams.

    1. Uhh no one ever learned the effects of slavery from a freaking microchip. Removing poor terminology is not 1984. Pick up a history book and put down your reference manuals….

    2. It’s very, very, revealing how you structured your comment. You talk about people removing records of history, in a context where people are changing the reference word for a technical concept.

      The only people who want to remove things from history books are those who want to pretend that the history didn’t happen, or to pretend that things were better than they were (see: the lost cause argument). BLM and related groups want history to be taught completely and accurately, so that it doesn’t get repeated or ignored.

      A cosmetic firm changing the name of a cream, or an engineering company changing the name they give to a protocol line do not erase history. Claiming this to be the case betrays either a willful ignorance or a hidden hostility of some sort.

  20. Sigh, I could give current examples but this is basically political correctness, and virtue signalling gone amok. And does nothing to address the real causes of the problems faced.

  21. I feel like the new acronyms say too much about the context of the interface’s implementation. I have systems where from a block diagram perspective a controller (microcontroller? overloaded term…) is a SPI Slave and a peripheral is a SPI Master.

    Perhaps Manager/Subordinate would work better? That way the acronyms don’t need to change too, saving some of the most expensive/difficult changes (silkscreens on boards).

  22. I think paragraph 1 is one of those few times you really wanted to use “effect” as a verb. “Effect widespread change” meaning to bring it about.

    1. Exactly. And some people here are terrified that someone might want to change male/female connectors – as if that’s the most natural way to name purely artificial objects created definitely not for reproduction purposes :) I first met the male/female terms before I knew human anatomy to that level of detail (at the age of 6 I believe) – and couldn’t understand why it’s called so.
      As for slave/master roles – I was genuinely confused by those terms and spent a lot of time to figure out what is happening, what is the real reason for choosing such words – it couldn’t be for no reason at all, right? (spoiler: wrong) :)

      1. Your use of name calling in your reply shows that you do understand that language matters.

        This change removes terms that are hurtful to some people from frequent encounters while doing their job. Consider making those people feel a bit more welcome in the engineering community by adopting this yourself.

        1. I will repeat my earlier comment: if we have to adjust our language to accommodate every single person who might be offended by something, we will end up with a very thin, yet confusing dictionary. Something like Thing Explainer by Randall Munroe. Better point your attentions to worthy causes.

          1. This is not every word. It is a very offensive word – probably more offensive outside of your culture than you can imagine, someone pointed that “master/slave” is easy to google, just FYI I never used these words for googling because they are too offensive in my culture. I somewhat accepted them when I first met them because I though “ok, maybe for them it’s ok, I should just try to ignore it”. But apparently no, for your culture it’s also not so great wording.

            And it has zero technical sense. Slave device doesn’t do all the work on communication, master device is not resting while slave is working, there is absolutely no real logic behind such naming.

  23. This is what psychologists call “displacement activity”. When you can’t directly change something, people change something else that they can, even if it is not relevant.

    There is also the problem of “backlash”. By pushing nonsensical changes, people react negatively to the whole idea.

    I’m afraid this will cause a lot of people just to tune out BLM activism as little more than virtue signaling, when there are real issues to be addressed.

  24. Solid burn.

    Also, I’m at a loss to understand how “multicontroller” is confusing where “multimaster” is clear. Not the weirdest reasoning in this comment thread, sadly. Pretty sure that goes to the “yer erasing history, are ya gonna stop teaching WWII” crowd.

  25. There are a few of things here:
    1) People aren’t saying that using master/slave to refer to pins makes the developers racist. It was using a well known terminology to describe a the pin functions.
    2) Changing the language isn’t erasing history. Fact: Racism is still a real problem in many areas ( not everywhere and optimistically a shrinking number). Removing these types of reference removes another systematic reminder that these attitudes exist from those who are feeling the impacts. Also, people, who actually have racist views whether intentionally or unintentionally should feel that they have less and less support for recast views as they see fewer examples of casual, socially acceptable references.

  26. I, for one, will stick to using master/slave; when it comes to programming, electronic devices and such, it has literally nothing to do with human-slavery and as such all that stuff is entirely fricking irrelevant and I refuse to appease these people seeking attention by way of virtue-signalling. It’d be one thing, if we were talking about people, but we’re not: we are talking about devices, circuits, subroutines and services and the terms “master” and “slave” are intuitively self-explanatory there.

    1. Too bad you can’t even do the virtue signalling. The words describe the relation of the devices by using the words that would describe the relation between people. Slavery came before MCUs, so that’s pretty obvious.

    2. I will change immediately – I hate those words a lot, and never use them directly, finally I won’t have to!
      And master/slave are not self-explanatory at all – when I first met them, I spent a long time finding what is that amount of work that slave does, and where in the protocol is all that time that master can rest while slave is working – turned out, both my intuitive assumptions were wrong.

  27. So if we remove the word slave from the dictionary the practise will never have existed? Sounds like Holocaust denial. And does a disservice to all those monks who have been slaving away at copying books to get us through the dark ages.

    1. Hi. Someone from Germany here. No one wants to deny the holocaust in this article. No one wants to remove the words from any dictionary. No one thinks that monks copied books with I2C and SPI pin labels in it.

    2. It’s not about removing master/slave from the dictionary, it is, if you want to get into such metaphors, about removing Holocaust from the protocol name. I’m pretty sure if you had an MCU that supports I2C, CAN and Holocaust, you would understand why someone wants to rename it, don’t you?

      To you it’s probably unthinkable how someone could give a name Holocaust to a communication protocol in the first place, I hope? To me it was similarly unthinkable how someone could give “master” and “slave” roles to devices in a communication protocol.

      1. I guess this means you want to write the Holocaust Cloak out of The Princess Bride?

        You seem to have replied to most every comment here with your complaint about “master” and “slave” in a communications protocol (which is not technically correct, it is used in FAR more places that just SPI and I2C). What if it had been “shobuja” and “imbata”? Would you have even bothered to look them up to see what they mean, or just accepted at face values that there is one shobuja and multiple imbatas on the bus?

        1. Unfortunately I have no idea about the context in The Princess Bride. Could be that it’s inappropriate. Could be totally fine. For example amount of “Heil Hitler” in Jojo Rabbit is just fine. Not sure it would be appropriate if it was there only a couple of times, but the way it is – no problems.

          You checked my answers in other threads but you didn’t care enough answer my question though :)

          Still, I will answer yours. Most probably I would look them up once, and then would just use. But if I would notice some very significant negative context – then I might have problems using those words myself, instead I would hide them by abbreviations, just like I did with master/slave

    1. That would be fun. The negotiator and multiple hostages on the bus. We’ll rename MOSI/MISO to NTHL/NLHT (Negotiator Talks Hostage Listens and vice versa), and SS to HS (Hostage Select).

  28. As silly and us-centric this might seem, it’s clear that this kind of change isn’t for me, it’s for folks who don’t think it’s silly.

    If relabeling signals make someone more comfortable and it grows the community just a little bit, then go for it.

    I don’t buy the argument that the change will be so confuseing that it will cause real trouble, though.

    How many people get confused over vcc/vee vs vdd/vss?

    What about twi vs. I2c?

    1. Thanks! Being from Eastern Europe, to me this naming was quite a shock when I first met it, and 8 years in, I’m still not comfortable using them. I virtually never use words “master/slave” even when describing purely technical things, trying to use abbreviations or some other ways to deliver the message. And I still believe for me those terms are relatively safe, there should be plenty of people to whom they sound much worse.

    2. Slavery was particularly bad and particularly recent in the US. What part of the world are you from that you think this is entirely us-centric and not applicable in your own land? Everyone’s ancestors were slaves and masters if you look hard and far back enough.

  29. Pointless and empty bullshit.
    If you want to do something good for the cause donate/support foundations working on getting poor people educated. Kids shall have an equal chance independent of where they came from. Poor people are more likely to become criminals and the only weapon against this is education. Where I live colored people have a long history of being poor. As a result a significant amount of crime is done by colored people. Not because of skin color, but because of material situation. I assume things are similar in the USA too. Invest your energy to change this.

    Or you can support changing pin names, and be done with it. Way more simple.

  30. ‘With hardware manufacturers like Sparkfun and Adafruit’…lol. I don’t think they make much hardware, honestly. Repurpose yes. Both of these organizations seem to put themselves on a high pedestal. So high that no one in industry has heard of them.

Comments are closed.