• Testing a new display with touch capabilities.

    Dimitar07/28/2022 at 11:53 0 comments

    Hey everyone!

    Unfortunately we have been hit by the chip shortage as everyone else. Instead of waiting for things to blow over, we decided to do some research and development. 

    Quite a lot of people asked for touch screen version of the RoEnDi.

    Fortunately there is a capacitive touch version of our 1.28" round display. It requires more IOs and it is a bit bulkier than the regular one. My friend who does the mechanical stuff, will have a few things to figure out :D :D :D

    I used one of the RoEnDi's test board to hook up the display and test it. The controller used is the CST816S, which is fairly popular with a lot of code examples.

    A few things to note if want to play around with it:

    1. You will need a 24 pin ZIF connector. Or mad ninja soldering skills, like on the phone repair videos you watch for hours. 

    2. In my case I had to get a adaptor board for the 24 ZIF connector, because it is very fine pitch and I really wanted to skip the soldering of tiny wires part. 

    3. The CST816S goes to sleep when there is no touch input. It is awake just after reset or after user input. This is done to save power which is nice. But to talk to it you either have to reset it or wait for the interrupt pin to signal that the devices is been used and then send messages on the I2C. 

    More or less quite nice combo of display and touch panel. I will upload some code examples and PDFs for reference on my git hub page. 

    PDFs: https://github.com/crowd-supply-projects/roendi/tree/main/references/Touch%20Controller

    Code: https://github.com/MitkoDyakov/Roendi/tree/main/Software/STM32CubeDemo/DisplayWithTouch

    Cheers everyone


  • Playing WAV file directly from STM32L433.

    Dimitar06/15/2022 at 13:39 0 comments

    This is a demo that I have made for ROENDI using the onboard DAC, buffer, timer and QPSI flash in memory mapped mode. It is fun little project. I will be sharing the code soon on the GitHub repo.

    I was struggling at first to configure everything. As you can see there were a lot of moving parts.I have seen the Application notes, some example from STM32l476GR-NUCLEO, but nothing was running properly.

    At last I found a blog of a Japanese dude  (NuTubeチャンネル). I could not figure out the comments, but the code was good. C code is international language and breaks borders. Then I  could piece together the puzzle.

    The code example for RoEnDi:


    The example from NuTube:

  • Roendi history

    Dimitar06/09/2022 at 14:28 0 comments

    Hello everyone, 

    I wanted to give you some info about how RoEnDi came to be.  

    About 7 years ago I started work in automotive sector and more specifically embedded systems. ECUs for seats, dashboards, infotainment, diagnostics for end of line testing, you name it. 

    One of the projects was for a climate control unit. Just like this one: 

    Climate control VW GOLF VII (5G1, BQ1, BE1, BE2) 2.0 R 4motion 7755007 |  B-PartsIt was very convenient having the buttons and the rotary encoder combined.  Unfortunately the parts that could make this happened were not available to the general public.

    Fortunately last year I was going through the new parts list of a major electronics part distributor and lo and behold  I see the same encoder I have see a few years back. 

    At first I wanted a simple project, just a breakout board, maybe some resistors and caps for debouncing the encoder outputs. But would you get my board or the encoder and hack a few parts together on a breadboard?

    Yeah right. So I did what any normal engineer would do... over engineered the simple rotary encoder. 

    I wanted a USB, UARTs DAC, ADC, SPI, sleep modes and battery charger for mobile use. I was thinking if making a board compatible with the STEMMA QT to make it easier for the people to integrate it. 

    I have chosen ST microcontrollers first and foremost because I know them really well. I have dealt with them on numerous occasions. They have bootloaders for Arduino IDE and kind of tick all the features I want. But all cannot be good. They a hard to get nowadays and not the cheapest. Something to think about next time. 

    The first go of the board was with the STM32L412 good little MCU.

    On the back there was a RGB LED to lit up the encoder from the inside. The idea of having a LCD display was not there yet. Then I came across Voltlog's youtube video about round display breakout boards. Everything came together. 

    It became pretty obvious that the STM32L412 would not cut it in term of pins. I needed QSPI for the graphics. Never the less I managed to hack everything together for a proof of concept. 

    It was a rat's nest. The idea behind the hole in the board was to be able to run wires from one side to the other. At least that came in handy. I made an adaptor for the QSPI flash. I got a friend to print me some knobs. It turn out great and this gave me confidence to proceed with new design. 

    But this was not the end for this little board. It got refurbished to a bed side table lamp. Little origami skills went a long way. 

    Next was a revision with STM32L422, it had more pin to accommodate the QSPI flash and the pins needed for the display. All other pins ware broken to the peripheral. 

    This design was almost what I need. The problem with it was a little oversight on my part about the debug port. I thought it would be a good idea to make a debug board without a cable. It became apparent how bad of an idea that was right after I connected everything. 

    The device would tumble, get disconnected and generally a nightmare to use. 

    Hanse the third and last revision of the board.

    Now it has a boot button, on board flash and no battery charger as it did the last one. 

    Hope this was fun, please leave a comment or share this page with your friends. 



  • We are LIVE!

    Dimitar04/05/2022 at 18:47 0 comments

    Hello all,

    We are happy to say that our crowed funded campaign is now live!

    Please check it out here: