Progress for ACS-Board Handlers #1

Closed
opened 2020-10-29 14:28:01 +01:00 by muellerr · 10 comments
Owner

Development progress

First step: Python Test program on Raspberry Pi to verify design

  1. LIS3MDL on ACS board was tested
  2. L3GD20H Gyroscope will be tested next
  3. R3100 MGM on ACS board was tested.
  4. ADIS and GPS have not been soldered/plugged onto the ACS board yet

Second step: Device Handler implementation

  1. LIS3MDL implemented by Lukas Loidold and integrated into project. Propably still needs two-step communication because there is a register wrap around when reading the Z-register.

Third step: Device Handler testing

  1. Testing either with ArduinoIO board or on target hardware. LIS3MDL was already tested. ArduinoIO board still needs to be adapted for Windows.

LIS3MDL Magnetometer

Issues

None. Both sensors working as expected.

Settings

  • CTRL register 1: 0b1101_1100, High-performance mode (but not used because FAST_ODR disabled?), 80 Hz output
  • CTRL register 2: 0b0000_0000, range +- 4 gauss
  • CTRL register 3: 0b0000_0000, continuous conversion, 4 wire SPI, normal power mode
  • CTRL register 4: 0b0000_1000, High-performance mode Z-Axis, LSB at lower byte.
  • CTRL register 5: 0b0000_0000, no fast read, block data update

RM3100 Magnetometer

Issues

X and Z axis are swapped, issue is known. Otherwise, no issues, LIS3 and RM3100 results for same test magnet are similar.

Settings

L3GD20H Gyroscope

Issues

Sensor side A might be problematic.

Settings

### Development progress #### First step: Python Test program on Raspberry Pi to verify design 1. LIS3MDL on ACS board was tested 2. L3GD20H Gyroscope will be tested next 3. R3100 MGM on ACS board was tested. 4. ADIS and GPS have not been soldered/plugged onto the ACS board yet #### Second step: Device Handler implementation 1. LIS3MDL implemented by Lukas Loidold and integrated into project. Propably still needs two-step communication because there is a register wrap around when reading the Z-register. #### Third step: Device Handler testing 1. Testing either with ArduinoIO board or on target hardware. LIS3MDL was already tested. ArduinoIO board still needs to be adapted for Windows. ### LIS3MDL Magnetometer #### Issues None. Both sensors working as expected. #### Settings - CTRL register 1: 0b1101_1100, High-performance mode (but not used because FAST_ODR disabled?), 80 Hz output - CTRL register 2: 0b0000_0000, range +- 4 gauss - CTRL register 3: 0b0000_0000, continuous conversion, 4 wire SPI, normal power mode - CTRL register 4: 0b0000_1000, High-performance mode Z-Axis, LSB at lower byte. - CTRL register 5: 0b0000_0000, no fast read, block data update ### RM3100 Magnetometer #### Issues X and Z axis are swapped, issue is known. Otherwise, no issues, LIS3 and RM3100 results for same test magnet are similar. #### Settings ### L3GD20H Gyroscope #### Issues Sensor side A might be problematic. #### Settings
muellerr added the
documentation
label 2020-10-29 14:29:30 +01:00
Author
Owner

All sensor handlers will be tested with a Raspberry Pi after I have finished my exams.

I will also implement the ADIS Gyroscope handler and implement the GPS Handler, using a freely available NMEA parser library: https://majerle.eu/projects/lwgps-lightweight-gps-nmea-parser-parser-for-embedded-systems

All sensor handlers will be tested with a Raspberry Pi after I have finished my exams. I will also implement the ADIS Gyroscope handler and implement the GPS Handler, using a freely available NMEA parser library: https://majerle.eu/projects/lwgps-lightweight-gps-nmea-parser-parser-for-embedded-systems
Author
Owner

I implemented the SpiComIF required to use device handler code on the Q7S and Raspberry Pi and I already tested the LIS3 MGM device handler code on the Raspberry Pi.

If I find some time I will also test the other device handlers.

I implemented the `SpiComIF` required to use device handler code on the Q7S and Raspberry Pi and I already tested the LIS3 MGM device handler code on the Raspberry Pi. If I find some time I will also test the other device handlers.
Author
Owner

LIS3MDL and RM3100 MGM device handler have been tested as well as the L3GD20H MEMS sensor. The L3GD20H is configured to output big endian data now, this was also specified here https://egit.irs.uni-stuttgart.de/redmine/projects/eive-flight-manual/wiki/L3GD20H_Gyro

LIS3MDL and RM3100 MGM device handler have been tested as well as the L3GD20H MEMS sensor. The L3GD20H is configured to output big endian data now, this was also specified here https://egit.irs.uni-stuttgart.de/redmine/projects/eive-flight-manual/wiki/L3GD20H_Gyro
Author
Owner

Rudimentary ADIS Handler working. 32 bit read mode and more configurability will be implemented as well

Rudimentary ADIS Handler working. 32 bit read mode and more configurability will be implemented as well
Author
Owner

Update: Board V2 available now. Things to keep in mind:

The CS pin for the ADIS device slots appesrs to be on the wrong side, but this is just a print issue and the pinout is correct. The reset pin is pulled to VDD, but the ADIS device can be powered off via MOSFET.

Code for Python test script: https://egit.irs.uni-stuttgart.de/eive/eive_devtools/src/branch/mueller/master/PythonSkripts/ACSBoard

Don't leave EN (enable pins) floating, are tied to a PULL UP and active low.

Pins on CSKB:
GND: H1 Pin 7/8
SPI_MISO: H1 P 13
SPI_MOSI: H1 P 14
SPI_SCLK: H1 P 15

GNSS0_nReset: H1 P 25
GNSS0_PPS: H1 P 26
GNSS1_nReset: H1 P 27
GNSS1_PPS: H1 P 28
GNSS0_RXD: H1 P 29
GNSS0_TXD: H1 P 30
GNSS1_RXD: H1 P 31
GNSS1_TXD: H1 P 32

3.3V_A_in: H1 P 52

CS_Gyro0_IN: H2 P 72
CS_Gyro1_IN: H2 P 73
CS_Gyro2_IN: H2 P 74
CS_Gyro3_IN: H2 P 75

EN_GNSS0: H1 P 42
EN_GNSS1: H1 P 44

EN_Gyro0: H2 P 86
EN_Gyro2: H2 P 90

3.3V_B_in: H2 P 89

CS_MGM0_IN: H2 P 93
CS_MGM1_IN: H2 P 94
CS_MGM2_IN: H2 P 95
CS_MGM3_IN: H2 P 96

Update: Board V2 available now. Things to keep in mind: The CS pin for the ADIS device slots appesrs to be on the wrong side, but this is just a print issue and the pinout is correct. The reset pin is pulled to VDD, but the ADIS device can be powered off via MOSFET. Code for Python test script: https://egit.irs.uni-stuttgart.de/eive/eive_devtools/src/branch/mueller/master/PythonSkripts/ACSBoard Don't leave EN (enable pins) floating, are tied to a PULL UP and active low. Pins on CSKB: GND: H1 Pin 7/8 SPI_MISO: H1 P 13 SPI_MOSI: H1 P 14 SPI_SCLK: H1 P 15 GNSS0_nReset: H1 P 25 GNSS0_PPS: H1 P 26 GNSS1_nReset: H1 P 27 GNSS1_PPS: H1 P 28 GNSS0_RXD: H1 P 29 GNSS0_TXD: H1 P 30 GNSS1_RXD: H1 P 31 GNSS1_TXD: H1 P 32 3.3V_A_in: H1 P 52 CS_Gyro0_IN: H2 P 72 CS_Gyro1_IN: H2 P 73 CS_Gyro2_IN: H2 P 74 CS_Gyro3_IN: H2 P 75 EN_GNSS0: H1 P 42 EN_GNSS1: H1 P 44 EN_Gyro0: H2 P 86 EN_Gyro2: H2 P 90 3.3V_B_in: H2 P 89 CS_MGM0_IN: H2 P 93 CS_MGM1_IN: H2 P 94 CS_MGM2_IN: H2 P 95 CS_MGM3_IN: H2 P 96
Author
Owner

Basic testing performed:

  1. GPS Slot 0 (U10) working and verified with GPS device (no fix)
  2. GPS Slot 1 (U11) working and verified with GPS device (no fix)
  3. ADIS16507 Slot 0 (U3) working, basic correctness of angular rate data verified with hand driven board rotations
  4. ADIS16507 Slot 1 (U12) working, basic correctness of angular rate data verified with hand driven rotations

Both slots were tested in separation because only 1 GPS devices and 1 ADIS gyro device was available.

  1. Both RM3100 working well, showing roughly the same sensible sensor values, still need basic verification with a rod magnet or something similar. Axis correctness verified with rod magnet.
  2. Both L3GD20H working well, basic correctness of angular rate data verified with hand driven board rotations.
  3. Odd behaviour of LIS3MDL devices. Sometimes working, sometimes not, working values for no magnet field applied seem almost out of tolerance values (e.g. -80 microtesla)
Basic testing performed: 1. GPS Slot 0 (U10) working and verified with GPS device (no fix) 2. GPS Slot 1 (U11) working and verified with GPS device (no fix) 3. ADIS16507 Slot 0 (U3) working, basic correctness of angular rate data verified with hand driven board rotations 4. ADIS16507 Slot 1 (U12) working, basic correctness of angular rate data verified with hand driven rotations Both slots were tested in separation because only 1 GPS devices and 1 ADIS gyro device was available. 5. Both RM3100 working well, showing roughly the same sensible sensor values, still need basic verification with a rod magnet or something similar. Axis correctness verified with rod magnet. 6. Both L3GD20H working well, basic correctness of angular rate data verified with hand driven board rotations. 7. Odd behaviour of LIS3MDL devices. Sometimes working, sometimes not, working values for no magnet field applied seem almost out of tolerance values (e.g. -80 microtesla)
Author
Owner

L3GD20H and LIS3MDL now working properly when setting the bus frequency to 10 MHz instead of 4. 1 also works for some reason. Really weird.. Datasheet said tests were performed at 10 MHz so I guess this is the safest speed for now.

L3GD20H and LIS3MDL now working properly when setting the bus frequency to 10 MHz instead of 4. 1 also works for some reason. Really weird.. Datasheet said tests were performed at 10 MHz so I guess this is the safest speed for now.
Author
Owner

Simulator Access GPS: https://skydel-simulator.ins.uni-stuttgart.de/index.html
Calendar: https://nc.ins.uni-stuttgart.de
Calendar Reservation: [SkyDel] Vorname Nachname - IRS

Simulator Access GPS: https://skydel-simulator.ins.uni-stuttgart.de/index.html Calendar: https://nc.ins.uni-stuttgart.de Calendar Reservation: [SkyDel] Vorname Nachname - IRS
Author
Owner

LIS3 on side A and B have completely inverted polarities.
The Side B sensor currently has the "correct" polarity (+ - +) if one assumes the polarities of the RM3100 sensors to be correct.

LIS3 on side A and B have completely inverted polarities. The Side B sensor currently has the "correct" polarity (+ - +) if one assumes the polarities of the RM3100 sensors to be correct.
Author
Owner

ACS board handlers finished

ACS board handlers finished
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: eive/eive-obsw#1
No description provided.