Forum Rule: Always post complete source code & details to reproduce any issue!

Search:

Type: Posts; User: JarkkoL

Page 1 of 3 1 2 3

Search: Search took 0.00 seconds.

  1. Replies
    47
    Views
    3,693

    Finally got my order of few different SPI &...

    Finally got my order of few different SPI & parallel interface LCD's from China for porting the renderer to :D Designed unified 26pin interface to quickly swap MCU's & LCD's

    1.3", 240x240, SPI,...
  2. Replies
    31
    Views
    1,698

    Doing linear interpolation for my music player to...

    Doing linear interpolation for my music player to be able to play multiple simultaneous instruments at different frequencies. If I were to implement an audio library, I would design it to be output...
  3. Replies
    47
    Views
    3,693

    Yes, I was in the PC demoscene in the 90's, but...

    Yes, I was in the PC demoscene in the 90's, but never got around to write a triangle rasterizer back in the days :D
  4. Replies
    13
    Views
    611

    You can check for example this post about...

    You can check for example this post about compiler memory access reordering: https://preshing.com/20120625/memory-ordering-at-compile-time/

    The scope of local variables isn't the crux here, but...
  5. Replies
    13
    Views
    611

    You don't need to make all the variables used by...

    You don't need to make all the variables used by the interrupt function volatile, just the ones shared between interrupt function and the main loop. Anyway, it doesn't hurt the validity of the...
  6. Replies
    47
    Views
    3,693

    Added bilinear texture sampling support for...

    Added bilinear texture sampling support for smoother texturing :) In the video it's toggling between point and bilinear sampling to show the difference. I'm currently supporting 23 different texture...
  7. Replies
    13
    Views
    611

    To give a bit more context, consider the...

    To give a bit more context, consider the following innocent looking code:


    static uint8_t s_buffer[256]; // interrupt fills the ring buffer with data
    static uint8_t s_buffer_pos; //...
  8. Replies
    13
    Views
    611

    Without seeing the code it's difficult to tell,...

    Without seeing the code it's difficult to tell, but based on your description, the reason could be buggy code how you communicate between interrupt routine and the main loop. Remember that interrupts...
  9. What I do with images, is to save them in...

    What I do with images, is to save them in png/jpg/etc from Photoshop and have a command line tool to convert the file to .h in given format.
  10. Replies
    47
    Views
    3,693

    Ah yes, I think I could make proto boards for...

    Ah yes, I think I could make proto boards for each display which maps from the display pins to some standard pin setup, and then another set of proto boards for each MCU to map from that standard pin...
  11. Replies
    47
    Views
    3,693

    I'm thinking of buying these 3 displays and...

    I'm thinking of buying these 3 displays and porting the lib to them:
    - 5" 800x480, 24bpp, SSD1963, 16bit parallel bus
    - 4" 320x480, 16bpp, ST7796S, 8/16bit parallel bus
    - 4" 320x480, 16bpp,...
  12. I got this 3.5" 480x320 TFT...

    I got this 3.5" 480x320 TFT working with Teensy 4.0. It's 8-bit parallel though not SPI.
  13. Replies
    47
    Views
    3,693

    Here's a video about meshlet Hi-Z occlusion...

    Here's a video about meshlet Hi-Z occlusion culling I added to the rasterizer. The occlusion culling is able to eliminate parts of the model as they are occluded by other models prior to any vertex...
  14. Replies
    47
    Views
    3,693

    Thanks! I have thought of releasing the lib with...

    Thanks! I have thought of releasing the lib with samples like the speedometer, but I got quite a bit of work to get there.
  15. Replies
    47
    Views
    3,693

    Squeezed the 3D lib to run on Teensy LC, not so...

    Squeezed the 3D lib to run on Teensy LC, not so flashy but it works! :D
    - Consumes 4.5kb of RAM
    - Uses 32x32 pixel tiles (8-bit grayscale frame buffer, 8-bit depth buffer)
    - 128 triangles, 64...
  16. Replies
    47
    Views
    3,693

    Going higher res and ported the 3D lib to this...

    Going higher res and ported the 3D lib to this cheap 3.5" Kuman ILI9488 320x480 display w/ 8-bit parallel data interface :D On this display I was able get 49fps fullscreen color fill on Teensy 4.0....
  17. @mikey.antonakakis It's all good, but you...

    @mikey.antonakakis It's all good, but you shouldn't use floats or you'll end up having float rounding issues. i.e. over time the average will drift away from the real average of the values. Convert...
  18. Replies
    47
    Views
    3,693

    Had to implement a speedomeneter gauge of course...

    Had to implement a speedomeneter gauge of course :D This uses a background image and renders a texture quad over top for the needle. It's using tiled rendering and consumes 20kb of RAM.

    ...
  19. Replies
    47
    Views
    3,693

    The design is quite a bit different and I think...

    The design is quite a bit different and I think Kurt would have to reimplement all the draw functions. Effectively his lib is immediate mode rendering while I defer rendering by recording draw...
  20. Replies
    47
    Views
    3,693

    I implemented my own ILI9341 lib using Kurt's lib...

    I implemented my own ILI9341 lib using Kurt's lib as a reference. It's further optimized and the DMA transfer supports partial tiled updates, so only updated regions are transferred over SPI. And it...
  21. Replies
    47
    Views
    3,693

    Thanks! Added texture support, so here's happy...

    Thanks! Added texture support, so here's happy cube :D Textures are stored in program memory to save RAM. It's doing perspective correct interpolation with point sampling, and supports different...
  22. Replies
    47
    Views
    3,693

    Some more fun optimizing geometry processing in...

    Some more fun optimizing geometry processing in the graphics lib :D This video visualizes "cluster cone culling", which omits processing of back-facing and occluded geometry clusters and helps in...
  23. Replies
    17
    Views
    1,036

    Have you tried this...

    Have you tried this?
  24. Replies
    2
    Views
    230

    Cool thanks, works! :D

    Cool thanks, works! :D
  25. Replies
    2
    Views
    230

    How to flush cache on T4 (for DMAMEM)?

    Hi,

    I read from the T4 memory layout specs section that DMAMEM specified buffers needs to be flushed for DMA transfer because RAM2 is cached. Is there documentation about these "cache management...
  26. Replies
    3
    Views
    346

    You shouldn't use smart pointers in any...

    You shouldn't use smart pointers in any environment ;)
  27. Replies
    14
    Views
    1,634

    You can write inline assembly...

    You can write inline assembly in gcc if you want to dive deep into bare metal coding. In general gcc does pretty good job, but there are some cases (e.g. tight high-performance loops) which you may...
  28. Thread: MCU trends

    by JarkkoL
    Replies
    9
    Views
    682

    Oh yeah, the project is for the long run and I...

    Oh yeah, the project is for the long run and I expect there to be few iterations of T4 before T5 hits the market.
  29. Thread: MCU trends

    by JarkkoL
    Replies
    9
    Views
    682

    Waiting for Teensy 5 with Helium support, that'll...

    Waiting for Teensy 5 with Helium support, that'll give nice perf boost for my project :D
  30. Replies
    47
    Views
    3,693

    Ported the 3D renderer to T4 (w/ DMA), runs much...

    Ported the 3D renderer to T4 (w/ DMA), runs much faster! :D


    https://www.youtube.com/watch?v=Xs_5Sv9oBtk
  31. Replies
    26
    Views
    2,043

    Just ordered this 3.5" 320x480px ILI9488 display...

    Just ordered this 3.5" 320x480px ILI9488 display from Amazon: https://www.amazon.ca/gp/product/B075FP83V5

    Cheap with good Amazon rating and comes with Prime just in time for the weekend to play...
  32. I implemented a fiber library that you can use:...

    I implemented a fiber library that you can use: https://github.com/JarkkoPFC/fiber

    There's an example what does pretty much what you ask for.
  33. Replies
    47
    Views
    3,693

    The rasterizer renders the image in tiles...

    The rasterizer renders the image in tiles (64x64px tiles in the video), so it doesn't require much memory for operation. For ILI9341 after rendering each tile I submit the pixel data for that tile to...
  34. Replies
    47
    Views
    3,693

    @mjs513 Very cool! Nice to have other 3D graphics...

    @mjs513 Very cool! Nice to have other 3D graphics enthusiast working on Arduino as well :) I got the lib working on T4 via synchronous SPI transfer, but I have to port the DMA code to T4 as well....
  35. Replies
    47
    Views
    3,693

    Added DMA support, which gave nice performance...

    Added DMA support, which gave nice performance boost :D


    https://www.youtube.com/watch?v=c-mBRbB1NF8
  36. Replies
    47
    Views
    2,568

    FWIW, the DMA code in your OS lib has been very...

    FWIW, the DMA code in your OS lib has been very helpful reference for me to implement the DMA transfers for my 3D graphics lib :) It freed up the MCU to do rasterization while transferring the data,...
  37. Replies
    47
    Views
    3,693

    Thanks for the nice feedback :)

    Thanks for the nice feedback :)
  38. Replies
    47
    Views
    3,693

    This 3D model is taking only 37kb of memory and...

    This 3D model is taking only 37kb of memory and stored in MCU flash so it's not an issue at all. I have a tool which processes and compresses 3D objects with custom vertex formats so that they can be...
  39. Replies
    47
    Views
    3,693

    3D Rendering on Teensy

    Had some fun porting my tiled software rasterizer to Teensy & ILI9341 :)


    https://www.youtube.com/watch?v=-7QWQ_h17sw

    Cheers, Jarkko
  40. You could try Arduino Music Player...

    You could try Arduino Music Player to play music on LC.
  41. Replies
    6
    Views
    397

    It's fine to define constructor (and any member...

    It's fine to define constructor (and any member function for that matter) as a template function though, but I guess that's not the behaviour what the OP is after.

    i.e. this is just fine:

    ...
  42. @KurtE Ok, it's perhaps too difficult of a change...

    @KurtE Ok, it's perhaps too difficult of a change to an existing API with various drawing functions which assume random access to the frame buffer. I'm just working on a graphics project which can...
  43. For more compact memory usage, you could double...

    For more compact memory usage, you could double buffer the sub-frames. Just let client to define in how many slices they want to update the screen, and then just call "flip" as many times. E.g. if I...
  44. Replies
    5
    Views
    520

    Thanks for checking it out. Cheers, Jarkko

    Thanks for checking it out.

    Cheers, Jarkko
  45. This is handled by graphics API's by client code...

    This is handled by graphics API's by client code calling flip() once it's done drawing a frame. Then you can decide to start DMA transfer or stall depending on the state of the previous DMA transfer.
  46. Replies
    5
    Views
    520

    Had some problems trying to upload hex & elf, but...

    Had some problems trying to upload hex & elf, but attached is the project. I'm compiling on Win10 & Arduino IDE 1.8.10 (uploading via Visual Micro also fails), Teensyduino 1.48. This is also using...
  47. Replies
    5
    Views
    520

    Teensy 4 probs with >1MB elfs

    I have an issue with >1MB elfs on Teensy 4. If I have >1MB program running on T4 and I want to upload another elf, regardless of the size of the new elf, this upload always fails (gives "Download...
  48. Thread: 3D graphics

    by JarkkoL
    Replies
    0
    Views
    186

    3D graphics

    Hi,

    Is there a low-level 3D graphics library for Arduino (along the lines of DirectX/Vulkan/Metal/etc.) to render 3D graphics? I checked around and found only quite primitive 3D rendering...
  49. Replies
    6
    Views
    318

    Well, if you absolutely want to take a trip to...

    Well, if you absolutely want to take a trip to the syntax crazy land:


    #define KEY(name__, ...) unsigned int pulse##name__[]=__VA_ARGS__;\
    Key key##name__={#name__,...
  50. Replies
    6
    Views
    318

    you could do something along the lines of: ...

    you could do something along the lines of:


    struct Key {
    char Name[8];
    unsigned int *Pulse;
    };

    unsigned int pulseOn[]={9070,4480, 610,530, 600,530, 610,520, 600,530, 00};
    Key keyOn =...
Results 1 to 50 of 118
Page 1 of 3 1 2 3