Noise when Itsy is driving a display

Please tell us which board you are using.
For CircuitPython issues, ask in the Adafruit CircuitPython forum.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
OutstandingBill
 
Posts: 60
Joined: Fri Nov 29, 2019 3:22 pm

Noise when Itsy is driving a display

Post by OutstandingBill »

Hi!

I'm using the 1.14" TFT display (product #4384) controlled by an Itsy M4. The Itsy's A0 analog out is controlling a parameter of an audio circuit. When the display is connected and powered by the Itsy's 3.3V output, there's a lot of audible noise in the audio curcuit. With the display disconnected (or with just the Vin diconnected) everything is nice and quiet.

The audio circuit is powered by an external 9V supply. The Itsy is (usually) powered by a 5V regulator running off the same external 9V supply. The display is powered off the Itsy's 3.3V out so that the Itsy and display can operate off USB without the 9V supply (that's only a nice-to-have feature).

By the time I realised that this was noisy, I had already printed some PCBs off, which committed me to the Itsy-powers-display idea.

I've tried smoothing the display power supply with a 470uF capacitor. I've tried putting the 470uF in to smooth the supply from the 5V regulator. I'm not using PWM. I tried adjusting the brightness, but it didn't seem to make much difference.

I've also tried various tricks with the screen saver I was already using, but the noise seems constant - except briefly during one of the initialisation steps (I think it's when initialising the SPI FourWire - my display initialisation pretty much follows the CircuitPython examples).

I considered Epaper as an alternative display technology. However, the display will sometimes need updating more than once every three minutes. I think that rules out Epaper.

Any suggestions? (Ideally software mods, or mods I can make to an already-printed circuit, but I know beggars can't be choosers.) Would it be better to power the display from the 5V regulator instead of from the Itsy?

User avatar
OutstandingBill
 
Posts: 60
Joined: Fri Nov 29, 2019 3:22 pm

Re: Noise when Itsy is driving a display

Post by OutstandingBill »

It turns out that bringing the display's RST pin to GND is enough to eliminate the noise. I don't really understand why, but setting the display (see code sample below) to None didn't eliminate the noise.

Maybe the display in the code is just a proxy for stuff happening on the display board, and setting display to None just removes the reference from your code, but leaves everything on the display board still running, drawing its current noisily, etc.

Anyway, once the display has been reset, whenever I want to show something on the display again, I just need to re-initialise it using something similar to the code below

Code: Select all

		displayio.release_displays()
		display_bus = displayio.FourWire(board.SPI(), command=self.tftDC, chip_select=self.tftCS)
		self.splash = displayio.Group()
		self.display = ST7789(
			display_bus, rotation=270, width=240, height=135, rowstart=40, colstart=53
		)
		self.display.show(self.splash)

User avatar
OutstandingBill
 
Posts: 60
Joined: Fri Nov 29, 2019 3:22 pm

Re: Noise when Itsy is driving a display

Post by OutstandingBill »

That previous solution (reset the display) was OK, but it did mean I needed to blank the screen to eliminate the noise. That wasn't ideal for my project.

Luckily I was able to create an RC filter to reject 20Hz and above on the power supply to the display. 100 Ohms and 100uF did the trick. This filter was on the 5V supply from the voltage regulator, not the 3.3V supply from the Itsy's onboard regulator) I tried a number of RC configurations with lower capacitance and higher resistance, but found the resistor was interfering with the supply voltage too much.

Locked
Please be positive and constructive with your questions and comments.

Return to “Itsy Bitsy Boards”