FX30 ADC on IO2


FX30 noob here, just getting started.

I have flashed the latest firmware to the unit (FX30_WP77xx_full_R15.1.0.004-att-SWI9X06Y_02.36.06.00), added a SIM, and have the unit online.

I am trying to read a 0-10Volt input on IO2.

I have connected a 5V source to IO2 and can read β€˜902’ when I issue the cm adc read EXT_ADC1 using putty.

So based on what I have read on the forums and what I am seeing it appears cm adc read only gives you a number 0-1700 and not a true 15 bit number (0-32767).

Additionally, not sure if it my hardware FX30 (WP7702) or the newer firmware, but it does not appear that you can query the status from linux using these commands.

/sys/devices/qpnp-vadc-8/mpp4_div1 { ADC with 15 bits of resolution (FX30 Cat-1/Cat-M) }

qpnp-vadc-8 directory does NOT exist.

/sys/class/hwmon/hwmon0/device/mpp_05 { ADC with 15 bits of resolution (FX30 3G) }

mpp_05 does NOT exist either. I don’t have the 3G version of the modem, but I thought maybe it had been moved there.

Does anyone know how to query the current firmware from Linux ? (without using the cm command, which is not supposed to be used in code)

Does anyone know how to get the 15 bit reading that is supposed to be available?
0-1700 is more like a 11bit number and really limits accuracy if used for data collection.

how about using AT command to get firmware version?

root@fx30:~# cat /proc/version
Linux version 3.18.140 (oe-user@oe-host) (gcc version 7.3.0 (GCC) ) #1 PREEMPT Fri Feb 11 09:40:40 UTC 2022
root@fx30:~# microcom /dev/ttyAT
Manufacturer: Sierra Wireless, Incorporated
Model: WP7608
Revision: SWI9X07Y_02.37.06.05 b15b59 jenkins 2022/09/27 07:54:33
IMEI: 352913090512345
FSN: XG207430712345

Legato Ver: 19.11.6_225ac9b7882467c5c7f9e0bf4cdb5523_modified
Yocto Ver:  SWI9X07Y_02.37.10.02 2022-02-11_09:57:45
OS Ver: Linux version 3.18.140 (oe-user@oe-host) (gcc version 7.3.0 (GCC) ) #1 PREEMPT Fri Feb 11 09:40:40 UTC 2022
LK Ver: SWI9X07Y_02.37.10.02
RootFS Ver: SWI9X07Y_02.37.10.02 2022-02-11_09:57:45
UserFS Ver: unknown
MCU Ver: 002.015


For ADC on FX30 R15, you can see here:

1 Like
root@fx30:~# cat /sys/bus/iio/devices/iio\:device0/in_voltage17_input
root@fx30:~# cm adc read EXT_ADC0
root@fx30:~# cat /sys/bus/iio/devices/iio\:device0/in_voltage19_input
root@fx30:~# cm adc read EXT_ADC1

Not sure where you found this code, but this works.

in_voltage19_input is where the 6 digit voltage reading is stored for IO2.

Do you know the top end of the range?

5V = around 905000

I would assume the top end would be 1700000, but 5 volts doesn’t seem linear.
I will need to test with a variable power supply to determine the linearity of the signal if using with a 0-10 Volt Transducer.

Thanks for the help!