This is my first version of Jeannie - Polyphonic DIY Synthsizer. The case for Jeannie are made by Erica Synths
Link : https://github.com/rolfdegen/Jeannie-Open-source-Synthesizer
The trick with my encoder query is that I trigger a hardware interrupt on the Teensy4.1 with every change and then read the 16-bit GPIO data register from the MCP23017 only once. From this, I can extract the encoder number and direction of...
The 3.5-inch Touch Display is a Waveshare ST7796S. It's high quality and has a built-in frame with a protective glass cover. This makes it very suitable for installation in devices.
Link ...
Small update to the envelope menu. You can now set the curve of each envelope to linear or exponential. The Init button resets the envelope to a default value.
Video
Hello everyone...
I've had some time again and have continued programming the encoder query and graphics. With such a large display of 480 x 320 pixels, the graphics transmission time is a significant issue. A single-core processor like the...
The encoders and graphics are now working very well. I've structured the image layout into sections. For each encoder, only specific graphic areas need to be updated. This reduces transmission time and improves encoder querying.
Video
Small resistors of 10 - 470 ohms in series with the signal lines prevent reflections of the signal at the cable end by acting as a termination resistor and matching the impedance.
Yes. That's a good idea. I'll try it with 50-100 ohms.
68 ohms to MOSI and CLK works well with an SPI clock of 60MHz :) Max SPI speed is 75MHz. 80MHz is too high. The display no longer works.
It seems to be a problem with the connecting ore cables. It works when I press the cables. I connected cables that were 15 cm long.
The plug connection is the problem!
"Houston, We Have a Problem!" 🫣
I'm using `useIntermediateBuffer()` and `updateScreenAsync(false, true, true)` for `fillRec()` and `fillScreen()`.
The problem is: Sometimes errors occur immediately, and sometimes only after a few minutes.
I...
You're right, that branch seems to be very broken at the moment - sorry about that. I've added that method to the dev/big-screen-t4 branch - still untested, but the display does at least work now!
I installed your current library https://github.com/h4yn0nnym0u5e/ST7735_t3/tree/dev/big-screen-t4-muxedCS. Unfortunately, my ST7796S only draw a black screen. I've tested it with and without framebuffering. I think it's an initialization problem...
I tried to install the modified library in PlatformIO https://github.com/h4yn0nnym0u5e/ST7735_t3/tree/dev/big-screen-t4-muxedCS.
But i have an include error
#include <ST7796_t3.h>
My mistake. It was the two-folder problem when unpacking via zip...
I can't draw a drawFastHLine() and drawFastVLine() with updateScreenAsync(false, true, true). Is that correct ?
// Draw envelope grid ------------------------------------------
void draw_env_grid()
{
uint8_t count = 4;
for (size_t i =...
Sorry.. I mean tft.updateScreenAsync(false,true,true)
Thank you for the detailed description. You mentioned that the buffer area is always rectangular. That's a very large area for the envelope line. It also doesn't matter whether I draw a...
Hallo h4yn0nnym0u5e
Thank you very much. Your suggestion works. But I'm still getting jumps in the encoder readings. I reduce the time it takes to display the image, I tried skipping the redraw of the black background. I draw the old envelope...
Hello
I used the Library https://github.com/h4yn0nnym0u5e/ST7735_t3.git
I suspect a bug in the framebuffer library with ST7796S and DMA. When I draw a small filled rectangle of 100x100 pixels with
updateScreenAsyncT4(true) and DMA, it takes...
Hello...
I'm having a problem when I'm transferring graphic data to the ST7796S display using framebuffer and DMA, while simultaneously querying the encoder via an MCP23017 with an 400KHz clock I2C bus. The encoder query is briefly interrupted...
Thanks for the correction. To keep things clear, I didn't copy the entire code from my Jeannie_2 project.
I just wanted to show a simple example of how to quickly and easily read encoders using an MCP23017.
Hello friends :)
The Jeannie 2 is equipped with a total of seven high-quality encoders. These encoders are used for parameter input via the menu and for modulation.
The Jeannie 2 is equipped with a total of seven high-quality encoders. These...
This is just one example. While the display is drawing data, I can process buttons, potentiometers, encoders, MIDI commands, and audio data.
Look at my Video with old TouchDisplay.
Hallo
I used Teensy 4.1 and ST7796S 3.5inch ISP TouchDisplay from WaveShare. For the TFT Display i used ST7735_t3-dev-big-screen-t4 Library and bitbank2/JPEGDEC@^1.8.4 with DMA. CPU speed is 720Mhz and SPI speed 60MHz. Display cable length is 9cm.
There's still a small bug in my code! I used PlatformIO and VS Code
in der Zeile 385
if (jpeg.open((const char *)name, myOpen, myClose, myRead, mySeek, JPEGDraw))
{
jpeg.decode(0, 0, 0)...
Thank you so much for your fantastic support. I can now draw JPEG images on the ST7796S at DMA speed.
The example "ILI9431_t3_slideshow" from Bitbank2, with a few modifications, works very well (see video).
ST7796_t3 Lib with DMA. SPI speed is...
Hallo. Good news :)
I'm currently using the TJpg_Decoder.h library to draw JPEG images on my ST7796S. It works with DMA, but the image format doesn't seem to be correct yet. The image is distorted and only black and white.
The TFT_eSPI library also includes the JPEGDecoder.h library. The renderJPEG() function works and draw an jpg image.
I would like to use the TFT_eSPI library, but it does not support DMA with ST7796 displays. SPI speed on Teensy4.1 is 60MHz
Test...
I think the problem is in the renderJPEG() function..
if ((mcu_x + win_w) <= tft.width() && (mcu_y + win_h) <= tft.height())
{
// open a window onto the screen to paint the pixels into
tft.setAddrWindow(mcu_y...
Hallo
Hello again ;)
I want to draw a 480x320 pixel JPG image onto my TFT monitor and I'm using the JPEGDecoder.h library for this. The image information is displayed correctly with jpegInfo(). But with renderJPEG(0, 0) no image is displayed. I...
Great that it worked. Please share in the forum some pictures of your TFT working, for me it is feedback, since I can indirectly see how the library works in other variants of EVEx and it allows me to improve the library.
A while ago I tried to...
Hello. Thank you so much for your great help :)
I tried your new fix. It works with Arduino IDE 2.3.8 (including Teensyduino 1.6 ?) and PlatformIO 6.1.19 (Visual Studio Code).
For my project I'm using this 3.5inch Capacitive Touch Display from...