I want to be able to track the curvature of a human arm as it straightens out and retracts (ex: like live tracking a bicep curl). I don't want to use resistive flex sensors.

I've been trying to find suppliers for this technology demoed here: https://www.youtube.com/watch?v=iAeXp-TpFLU&t=38s

But I cant seem to find anyone who sells directly to consumers. I was thinking about creating a hobbyist level version my own using fiber optic wire, a led, and a light wavelength sensor, using a more powerful Arduino such as the Intel Edison. I have a basic understanding of how this technology works, but I want to learn by attempting to create it.

Is this practical or possible with an Arduino?

if so:

  • Are these the correct materials I would need?

if not:

  • Why not?
  • What kind of equipment would I need to achieve this?
  • Is there anywhere to buy this sensor directly?
  • Are they any alternatives for 3D shape/position sensing besides 3D magnetic sensing?
  • how does the technology work? .... it is unclear from the video how much computing power is needed to calculate the position of the fiber optic cable ..... btw: there is no such thing as a fiber optic wire ... wire is metal
    – jsotola
    Oct 12, 2018 at 2:37
  • it is also unclear what kind of a sensor is used on the end of the optic fibre ..... it is most likely some sort of a multi cell sensor
    – jsotola
    Oct 12, 2018 at 2:40
  • Cable* is what I meant. Here is a video that explains the technology (0:50 start), youtube.com/watch?v=Kc3foeu2-50, from what I read, but again I have a limited understanding of this technology in depth, it measures the wavelength that is reflected back from the bragg gratings, in the video an oscilloscope is scene used, so I assume maybe an Intel Edison Arduino, since having a 500 MHz clock speed, maybe this is enough?
    – dandev
    Oct 12, 2018 at 2:45
  • Likely you need to measure the time it takes for light to travel over a distance of fractions of a meter. And light in a vacuum travels at about 3x10^8m/s. This is the type of measurement a LIDAR based car navigation system only starts to approach. Further, it is inferred the color of the light is important to measure. The only test equipment I know of that might be capable of measuring the speed of light and the color of light are used in high speed fiber optics communication. We're talking anywhere from the price of an expensive car to the price of a house.
    – st2000
    Oct 12, 2018 at 5:17

2 Answers 2


I think nobody here can really give you an answer, if this is possible with an Arduino, since we don't know enough about the technology and the nitty gritty things, that make this a difficult task. So making a hobbyist version won't be easy and maybe really expensive.

In the fiber each bragg grating reflects a bit of the light back. The wave length of this reflected light is dependend on the angle between light and grating. So you get a specific wave length back from each grating, that corresponds to the bending at that particular part of the cable. The task is to measure the many wave lengths, that are being reflected in the fiber, and match them to a particular part of the cable. Since they don't say, how they are solving this, I will mention some ideas here:

  1. Spectral Measurement (Wave length):
    • From the video I guess, that they use white light to shine into the cable. The gratings will only reflect the wave lengths from this spectrum, that satisfy Bragg's law due to bending angle. You have to measure the wave length directly with a spectrometer. Mostly this is another grating, that will seperate the wave lengths spatially, so that you can measure the spectral structure by using a spatial sensor, for example a camera or a line sensor. You would have to correct for different wave length sensitivities of the camera.
    • Maybe they are only using a laser with 1 wave length. Then the bending would result in a change in intensity reflected from that grating. If you can seperate the signals from the different gratings good enough, you would be able to measure just the change in intensity, which would be easier, since you basically need just a photo transistor or similar for that wave length. (In this case you would need to calibrate the sensor each time as a straight cable and ensure, that the measurement is fast enough for the expected movement).
  2. Matching of signals to each part of the cable: Here I guess, that they use a time-of-flight sensor, because I cannot think of anything else without further information. This is a really difficult problem, because most available sensors are not sensible enough for measuring quarter inches without being cheap in the first place. You will likely spend a lot of money for a sensor like this. And you building an own time-of-flight sensor with the wanted sensitivity may be as difficult as building the whole device in the first place.
  3. Needed Parts: Also you will need the fiber itself, which is - as stated - not a normal glas fiber, which you can by everywhere. It is most likely a custom build and you will pay a lot of money, to get one of these. The light source is dependend on the spectral measurement above. For a white light it is important, that all wavelength should have as equal intensity as possible. You would also have to account for the spectral absorption and the overall absorption in the fiber, which restricts the sensitivity and possible lengths.

Is there anywhere to buy this sensor directly?

Most likely not. In the videos it seems like a device, that was developed by the NASA for a specific application. The video is a proposal for other companies to learn from the NASAs development, so the device is not consumer ready. But you might be able to get a paper about this device by searching the internet for it or by asking the NASA directly. This paper would contain way more information about the device as the videos.

All in all this would be an extremely difficult task. Since you came here (a simple Q&A site) with this difficult question, I think, that you are not really ready for this big of a task. Most likely even the developers at the NASA needed long and much money for this.

Are they any alternatives for 3D shape/position sensing besides 3D magnetic sensing?

I would propose to build a string of bending strips, which change their resistance according to the bending angle. You can use multiple strips for getting multiple readings for different parts of the human arm. With each strip you build a voltage divider and do an analog measurement. With a bit of calibration you should be able to measure the curls.

  • Thank you for all of this information, this will help me a great deal. About the bending strips specifically, is there a way to make a 3D bending strip? If we put two together in a fashion where one measures the strain forward and backwards and the other from left to right? And using the change in light intensity as you previously said, would an optical bend sensor be better/more precise? Also a problem with a flex sensor, it doesn't give you a different value if you bend it forward or backwards to be able to tell bend direction or am I wrong?
    – dandev
    Oct 12, 2018 at 15:30
  • your arm does not really bend two ways, except for your wrist ..... on the wrist, place one sensor on each side .... one will extend and one will contract .... that will indicate the direction of bend
    – jsotola
    Oct 12, 2018 at 16:19

Well. is not impossible and the accepted answer is quite dark.

To use a FBG with an Arduino (I advise a ESP32) one needs to have a light* emitter and also a light receiver for the same end of the fiber. To achieve this, is used an unidirectional optical circulator coupled with both emitter, receiver and the FBG.

The difficulty is in finding those components suitable or sensing and at the same time inexpensive. That said, here https://europepmc.org/article/pmc/6651577 is an article depicting a portable FBG interrogator using a raspberry pi. The Pi uses a 120Mhz MCU , so a ESP32 MCU is also a suitable option.

enter image description here enter image description here

in sum, it can be done quite easily.

  • (FWIW, Pi3 uses a 1.2GHz CPU, not 120MHz) Jan 3, 2022 at 12:57
  • correct. howeverthe MCU in a Pi clocks at 120Mhz Jan 3, 2022 at 13:36
  • I guess I don't understand what you mean by "the MCU in a Pi" here; can you be specific? Jan 3, 2022 at 15:19
  • @Dave Newton, since you know so much, why not answer this question by yourself or better, edit this one ? Jan 3, 2022 at 22:20
  • Not sure why you're upset--I just don't understand what you're talking about; I don't know what part of an RPi would be called an MCU or what part of an RPi runs at 120MHz. Geez. Jan 3, 2022 at 22:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.