OV2640 > ESP32 > Serial (pixeldata) > python (png assembly) > PNG. Now working backwards to have the ESP32 building the PNG. This was (is) a journey, but sooo close to a self-contained, esp32 pixel-art camera!! ._. (thanks @fionafokus <3)
NO WAY, it works :'D I can now take indexed PNG images with custom color-palettes on an ESP32! Next up, SD card storage (currently they are bytewise transferred through serial) and live preview on a display. Then maybe just build a small custom board, like a 10$ pixel-art-camera? C:
funfact: the resulting image still contains the full 8 bit grayscale data, it just indexes it to an arbitrary amount of colors! Eight in the image above. This should allow me to use any color palette up to 256 colors with mapping curves, furthermore, I can also capture RGB images and use color-matching to try to match RGB-palettes to the real photo!

proof-of-concept C:

(Quality is still terrible, many in camera parameters need to be worked on, it’s terrible slow, but, it works!)

schematic and placement: ✅
see, it all makes sense

ship it

(cc @fionafokus :3 )

I sometimes feel like it’s a law of nature that I can never get a PSRAM/SPI-Flash footprint right
I’m also kinda proud to say that this is my first UART RX/TX mixup since probably 2020! It was long overdue :3
:3
accidentally ran into the resolution limit with the silkscreen logo/font, this will be fixed in the next revision (along with a few more bodges)
@janamarie Out of curiosity are you using esp32_camera or building something from scratch? Have you had trouble with the OV2640 moving between power states?
@janamarie Grandios. Wenn jetzt noch wer PCBs auf "FR5-Fusilli" liefern könnte...
@janamarie I feel like this image is watching me… supicious.
@janamarie at least that is what the label says.
Excited to see it in action, it looks really pretty!
@janamarie what happens if you submit this to an assembly service? Would they complain?
@janamarie The angled components irritate me to an absolutely unreasonable degree. 11/10
@janamarie This is how you can achieve negative baud rate 😀
@janamarie when I look at this image I hear Tyrone from Snatch saying "it was a funny angle".
@gsuberland ohno, I don't know that reference D:
@janamarie ah, it's a British black comedy gangster film.
@janamarie what's up with the squiggly trace going to the sd card?
@critakitty lengthmatching, just for fun
@janamarie @fionafokus make the traces smooth and curvy :3
@uint8_t @janamarie @fionafokus yessssss traces that look like you let a kindergartner do the routing
@janamarie @fionafokus noob pcb designer here. Great to see this and i like the angled stuff and silkscreen stuff. Questiin though: I know what swd is, but is that some kind of ready made connector for it?
@cyclops_ it is a dedicated debug connector I like to use, it's just one of many though! https://www.tag-connect.com/product/tc2030-idc-nl
TC2030-NL no-legs to 6 pin IDC MCU debug cable | Tag-Connect

6-pin Plug-of-Nails no-legs very small PCB footprint connector to IDC for MCU debug - no mating part required. Buy online!

Tag-Connect
@janamarie @cyclops_ Ever looked at the Würth WR-WST REDFIT IDC SKEDD (I hate the name)? Much cheaper and easier to use, you can make your own cables for cheap and they are even providing a 3d printable tool for assembling the connector. I stopped using Tag-Connect since I've had the occasion to try one!
@mborges @cyclops_ yep, does not seem to be my favorite. Glad it works well for you though!
@janamarie I think in the next pcbs I design I want the routing to be described as "deeply unhinged". I think I want the staff at jlc to think they fucked up deeply. I'm kind of obsessive and my routing and placement usually shows that. But perhaps now is the time to try something else.
@sungo I’m always wondering what the worst of the worst is that board houses have processed
@janamarie you know someone drew out various bits on anatomy or other .... art. but yeah there have to be boards where they're just like "let's put a free coupon for this 'how to use kicad' class in the box because damn"
@janamarie can’t decide if it’s better or worse that the traces are all 45/90.

@janamarie
I presume the components at odd angles like that is due to artistic intent and these boards will be mostly had populated?

Just asking 'cause PCB assembly houses will complain with those odd angles.

R16 is very close to what I assume is an ESP32-WROOM. That will cause problems in pick-n'-place, the air displaced when that module comes down will blow R16 off the solder paste, or they will collide- Speaking from experience years ago

@janamarie it's beautiful (the traces look quite nice).
I was momentarily confused by the, let's call it, dutch angle component placement, but I think I recall an earlier thread on more organic placements. :D

One question (note that I have never designed a PCB): Why is there short "tunnel" (I guess two vias and a bit on another layer) on the trace from Pin 20 on U8? Is it just because some aren't shown / done yet in the picture, or is there something for me to learn/look up maybe?

@janamarie @theresnotime I understand that!
(doesn't understand at all)
@janamarie ooooohhh, things are happening, it has a quite recognizable shape and looks quite cool.
The palette display looks interesting, what will it be (the component)?
@crypticcelery it will be a small 0.99" 40x160px Display, dedicated to statically showing the current palette
@janamarie yes, I assumed as much. I was just curious about the layout (connection in the middle), but I think I was just being silly/confused, and that is just where the cable goes, which would then attach to the side of the display.
Anyway, it is shaping up quite nicely, great work and thanks for sharing!
@janamarie ✅ layout sins committed
@janamarie
```
javascript:document.querySelectorAll("html *").forEach(e=>e.style.transform=`translate(${(Math.random()*8)-4}px,${(Math.random()*8)-4}px) rotate(${(Math.random()*2)-1}deg)`)
```