Shamelessly stolen from you know where

  • Thorry@feddit.org
    link
    fedilink
    English
    arrow-up
    81
    arrow-down
    1
    ·
    3 days ago

    I know Lovense Lush uses a Nordic nRF51822 microcontroller, this doesn’t run a full OS normally. It runs ARM machine code directly, usually programmed in a C variant in something like Keil. They provide an SDK with an Arduino compatible platform, so it might even just run Arduino. No idea if someone analysed the software on those microcontrollers as it’s pretty niche and the code inside is probably super simple. The microcontroller is way overpowered for what it does, but it isn’t that overpowered that it could run a full Linux stack.

    • tauonite@lemmy.world
      link
      fedilink
      English
      arrow-up
      5
      ·
      3 days ago

      I remember watching a talk about sex toy hacking once, I’ll try to find it for your (and everyone else’s) pleasure. Think it was a Lovense in that talk

    • cantstopthesignal@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 days ago

      Unless the vibrator needs to be wireless that nrf is way overpowered and expensive. For mass production you want the cheapest, smallest, thing that will do the job.

      • Thorry@feddit.org
        link
        fedilink
        English
        arrow-up
        4
        ·
        edit-2
        21 hours ago

        Yes the Lovense Lush is the most popular wireless vibrator. It can be controlled over Bluetooth by an app or computer. It is used a lot in livestreams where viewers can donate to make the vibrator vibrate in a certain pattern and duration. There is a whole software ecosystem around these where the streaming platform handles the payments and integrates with the local software controlling the vibrator. I chose that vibrator specifically as an example, because it probably has one of the most powerful chips inside and the most functionality.

    • Buddahriffic@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      3 days ago

      What you said is accurate but it implied systems with an OS don’t run machine code directly. They still do, just the CPU has ways of automatically interacting with the OS when it needs to (and those features are enabled), mostly via interrupt handlers. Things like address translation happens transparently, either via a lookup table for recently used addresses or the CPU will throw a TLB miss interrupt if it’s not ready to go and needs the OS to give it a mapping (or maybe even load the page from disk before it can proceed).

      CPU architecture is pretty interesting and doesn’t require programs run through a translation layer like Java, Python, or JavaScript. The translation layers themselves are programs running as machine code at the user level.

      Edit: I see now that you meant the directly as in the microcontroller runs the ARM uarch. I’ll leave this up in case anyone reads it like I did initially, but sorry for the misunderstanding on my end.