element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Experimenting with Single Pair Ethernet
  • Challenges & Projects
  • Design Challenges
  • Experimenting with Single Pair Ethernet
  • More
  • Cancel
Experimenting with Single Pair Ethernet
Projects "Its all the same"
  • News
  • Projects
  • Forum
  • DC
  • Leaderboard
  • Files
  • Members
  • More
  • Cancel
  • New
Join Experimenting with Single Pair Ethernet to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: SensoredHacker0
  • Date Created: 28 Feb 2026 4:27 AM Date Created
  • Views 84 views
  • Likes 4 likes
  • Comments 3 comments
  • plcs
Related
Recommended

"Its all the same"

SensoredHacker0
SensoredHacker0
28 Feb 2026

Some internet jerk made a snide comment today about someone else’s light-hearted Linux install project. It shouldn’t have stuck with me, but it did. It woke me up hours later with a thought I couldn’t shake:

They’re all the same.

For the past few years I’ve been building my own PLC communication libraries — serial, USB, TCP — in Python, C/C++, JavaScript, PHP. In the last 24 hours I’ve been writing Kotlin because I want a field tech to be able to debug a PLC from their phone, even if the PLC doesn’t have Bluetooth. No PhD. No formal CS background. Just me, a hex editor, and the habit of staring at binaries until the patterns start to move.

I’ve got a small collection of PLCs to experiment with — mostly IDEC, plus a few Siemens, Keyence, Mitsubishi. When I want to understand something, I don’t wait for permission. I open the firmware, trace frames, XOR checksums by hand, and squint until the Matrix resolves. That’s how I dug into IDEC’s Maintenance Protocol. I’ve mapped most of it. I still haven’t fully cracked firmware writing or compiled bytecode translation, but I’m close.

Then something weird happened.

I was experimenting with a Keyence KV series PLC my employer provided. By accident, I ran some IDEC code against it.

The LEDs toggled.

That shouldn’t be possible.

So I ran it again.

There it was: IDEC’s Maintenance Protocol responding on a Keyence KV-1000.

That sent me digging. I looked for documentation. Nothing useful. 
Every OEM wants you locked into their bloated, feature-starved software. 
So I asked ChatGPT what PLC communication protocols are linguistically similar to “Maintenance Protocol.”

The answer?

All of them.

Mitsubishi MELSEC. IDEC Maintenance. Keyence KV. Siemens S7. Schneider Electric. And probably the rest. I haven’t tested the GE units yet — the ones I have are temperamental — but I’m not expecting surprises anymore.

The structures match. The framing matches. The checksums match. Even the command semantics echo each other.

And here’s the funniest part: there’s a typo. A small framing typo that has survived for roughly forty years. It appears in every document from every vendor. Same sentence. Same mistake. Never corrected. It’s like a fossil record of copying.

Near as I can tell, someone named Petr John, defined a protocol that was likely meant to be open. 
Over time, industrial OEMs cloned it, rebranded it, redistributed it, and quietly erased source attribution. 
Every one of them claimed it as thier own uniqe protocol. The memory mappings might differ, but the language is the same. 


What’s fascinating is that nobody fixed the typos.

Four decades. Dozens of manufacturers. Identical typologcal error.

They’re all the same.

I started this because I wanted to build tools that help techs in the field. 
I don’t want to drive out for service calls just to flip a bit. 
I want clean, simple, useful software anyone can use. 
I didn’t set out to reverse engineer the entire industrial controls ecosystem.

But once you see it, you can’t unsee it.
n 
The protocols are the same.
The framing is the same.
The semantics are the same.
Even the typos are the same.

When I finally finish mapping byte-code to instructions and build an open instruction compiler, 
It’ll just be the same thing running everywhere else.

Find the TYPO!

https://dl.mitsubishielectric.com/dl/fa/document/manual/plc/sh080008/sh080008ab.pdf

https://docs.galco.com/techdoc/idec/fc4a_protocol_im.pdf

### Good docs are hard to come by, but when i find the other again Ill post them.



  • Sign in to reply
  • kmikemoo
    kmikemoo 9 days ago in reply to SensoredHacker0

    @SensoredHacker0  When it comes to the video... give yourself some grace.  I used to have to do a monthly Safety video for work and I wasted a TON of emotional energy chasing perfection - which I never achieved.  Along the way, I learned that it's okay to be human.  It makes you more relatable - and therefore trustworthy. Relaxed  We're all here for the nerdy stuff anyway. Joy

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • SensoredHacker0
    SensoredHacker0 9 days ago in reply to kmikemoo

    yeah, Ive read a lot of manuals. My ""code base is a whole bunch of fragments. Im trying to organize into a usable API. 
    in all the tinkering, Ive made arduinos program PLCs, and projects in 10 languages. Some of those languages have caveates, and this is influencing my choices in making an API.   it might go: plc = API(vendor.interface)
    well then anyways, Ill make proper videos, which isnt a skill Ive developed. 

    This plc isnt programed. 
    I run the app on my phone. 
    The plc is now programed. 

    seems conceptually simple, but how to make the video is confusing. Well Ive managed to convince a few folks, and have a brand new pile of PLCs to perform confirmations and proofs on. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • kmikemoo
    kmikemoo 15 days ago

    Very cool.  Thumbsup  That's a lot of manual to review.  I'll just have to trust you.  Joy

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube