TeensyDigital
Well-known member
I've got a T4.1 that I am using as the brains for a flight computer and radio telemetry in an amateur sounding rocket. I ported my project to the T4.1 from an ESP32 about six months ago and I love the extra CPU power and IO, but I am running into a lot of RF interference issues, as the ESP32 was shielded and the T4.1 is not. I haven't needed to do a lot of shielding before, but my past four flights have had a lot of RFI issues, so now I'm going to rebuild my PCB and sled. There is a lot going on in my setup and the package can often be crammed into a very small 3" diameter by 12" avionics bay.
Here is what I've got: A T4.1 logging to onboard SD (SPI) at 100hz. Three sensors on the I2C lines running at 400Hz (a barometer, a 200G accelerometer, and an IMU/gyro). I've got a GPS connected by serial pins and I'm using a 2 watt 433mhz radio for bi-directional radio transmission, using the second serial port (both at 19200 baud). I also have six gpio pins to opto-solid state relays for pyro events (and six more gpios to check pyro continuity) and 4-5 other gpio pins extended up and down the rocket 4-6 feet for hall sensors and other event sensors. (the CPU board sits central in the rocket and sensor/pyro leads go up and down the airframe). There is a LOT of i/o going on. I have 3-4 different antennas I swap out, but the antenna is always within inches of the T4.1. Some are dipole, inverted V, and whip. There really is no way to get the antenna further away, as the airframe hard separates during flight above and below the board for parachute deployment. The whole thing runs on a single 7.4v lipo battery that splits into a 5V line for the radio and the T4.1 and 3.3v line for the baro, accelerometer, IMU, and GPS. The radio TTY serial levels (and all sensors) are 3.3v. I have the T4.1, all the sensors, SSRs, etc. on a custom PCB that is about 4.5" x 2" with terminal screws or JST plugs connecting the PCB to all the sensors and pyros on the rocket.
The canary in the coal mine for my RFI woes is the SD card. It seems to glitch out first and stop writing. I can reproduce the SD issue reliably, by placing my setup with the antenna next to a metal table (causing RF reflection back into the package), but the other RFI issues are more intermittent. In addition to the SD, I get anomalous readings on the I2C bus, usually from the barometer first. During the flight this weekend, my issue was with GPS lock and/or GPS serial comms back to the Teensy. It refused to lock (and I was getting erroneous barometer readings), until I disconnected the radio. I know from my ESP32 days that poor antenna or feed design can cause lots of RFI issues. I always knew when I had a bad antenna design, based on RFI on the ESP. So, now I am using "known good" feed line and antenna setups that SWR < 2.0, but the T4.1 just seems a lot more sensitive. So, it is time to dig in and shield it and protect it with as many belts and suspenders as I can.
Here is my current thinking, based on light research (not my area of specialty):
1) I am going to attempt to design of a copper box/shield around the board in its 3D printed sled. I can likely cover the top, bottom, and three of four sides. I am also considering a small shield over the T4.1 on the PCB on top and bottom. Anyone else ever do this at the PCB level?
2) Use of ferrite beads on the power feeds and on all the active GPIO lines. Any suggestions on using ferrite beads on the I2C or serial lines? What size?
3) Small caps on the i/o lines (1 uf?)
4) Eliminate ground loops on the PCB -- use "ground star" layout. I do have ground loops, I also have long 4-6 foot ground wires running to separation sensors in the airframe.
5) Use a separate 5V regulator for the radio to isolate the power more (I really don't want to use a separate battery, due to space/weight).
6) Use stronger pull-up resistors in the I2C bus. Currently I am depending on the pull-ups on some of the sensor boards. Maybe add some 4K resistors on the board to ITC lines? I can't slow down the I2C without impacting my sampling and velocity integration.
7) I'm going to swap out my bosch BME280 for a different barometer. The Bosch is known to be more RF sensitive.
8) I am also researching a Lora based 1 watt radio to replace the 2 watt FSK serial radios. I need these to work > 100K feet, so I can't go much lower in wattage, but maybe different radios will give me the same range, but less RF (?)
If anyone has experience shielding a Teensy from external RFI I would really appreciate your advice. Thank you for any ideas or suggestions.
Mike
Here is what I've got: A T4.1 logging to onboard SD (SPI) at 100hz. Three sensors on the I2C lines running at 400Hz (a barometer, a 200G accelerometer, and an IMU/gyro). I've got a GPS connected by serial pins and I'm using a 2 watt 433mhz radio for bi-directional radio transmission, using the second serial port (both at 19200 baud). I also have six gpio pins to opto-solid state relays for pyro events (and six more gpios to check pyro continuity) and 4-5 other gpio pins extended up and down the rocket 4-6 feet for hall sensors and other event sensors. (the CPU board sits central in the rocket and sensor/pyro leads go up and down the airframe). There is a LOT of i/o going on. I have 3-4 different antennas I swap out, but the antenna is always within inches of the T4.1. Some are dipole, inverted V, and whip. There really is no way to get the antenna further away, as the airframe hard separates during flight above and below the board for parachute deployment. The whole thing runs on a single 7.4v lipo battery that splits into a 5V line for the radio and the T4.1 and 3.3v line for the baro, accelerometer, IMU, and GPS. The radio TTY serial levels (and all sensors) are 3.3v. I have the T4.1, all the sensors, SSRs, etc. on a custom PCB that is about 4.5" x 2" with terminal screws or JST plugs connecting the PCB to all the sensors and pyros on the rocket.
The canary in the coal mine for my RFI woes is the SD card. It seems to glitch out first and stop writing. I can reproduce the SD issue reliably, by placing my setup with the antenna next to a metal table (causing RF reflection back into the package), but the other RFI issues are more intermittent. In addition to the SD, I get anomalous readings on the I2C bus, usually from the barometer first. During the flight this weekend, my issue was with GPS lock and/or GPS serial comms back to the Teensy. It refused to lock (and I was getting erroneous barometer readings), until I disconnected the radio. I know from my ESP32 days that poor antenna or feed design can cause lots of RFI issues. I always knew when I had a bad antenna design, based on RFI on the ESP. So, now I am using "known good" feed line and antenna setups that SWR < 2.0, but the T4.1 just seems a lot more sensitive. So, it is time to dig in and shield it and protect it with as many belts and suspenders as I can.
Here is my current thinking, based on light research (not my area of specialty):
1) I am going to attempt to design of a copper box/shield around the board in its 3D printed sled. I can likely cover the top, bottom, and three of four sides. I am also considering a small shield over the T4.1 on the PCB on top and bottom. Anyone else ever do this at the PCB level?
2) Use of ferrite beads on the power feeds and on all the active GPIO lines. Any suggestions on using ferrite beads on the I2C or serial lines? What size?
3) Small caps on the i/o lines (1 uf?)
4) Eliminate ground loops on the PCB -- use "ground star" layout. I do have ground loops, I also have long 4-6 foot ground wires running to separation sensors in the airframe.
5) Use a separate 5V regulator for the radio to isolate the power more (I really don't want to use a separate battery, due to space/weight).
6) Use stronger pull-up resistors in the I2C bus. Currently I am depending on the pull-ups on some of the sensor boards. Maybe add some 4K resistors on the board to ITC lines? I can't slow down the I2C without impacting my sampling and velocity integration.
7) I'm going to swap out my bosch BME280 for a different barometer. The Bosch is known to be more RF sensitive.
8) I am also researching a Lora based 1 watt radio to replace the 2 watt FSK serial radios. I need these to work > 100K feet, so I can't go much lower in wattage, but maybe different radios will give me the same range, but less RF (?)
If anyone has experience shielding a Teensy from external RFI I would really appreciate your advice. Thank you for any ideas or suggestions.
Mike