embedded-graphics / hardware-bench

A standard test bench for a variety of embedded-graphics targets
MIT License
0 stars 1 forks source link

BOM #1

Open rfuest opened 2 years ago

rfuest commented 2 years ago

Continued from https://github.com/embedded-graphics/embedded-graphics/issues/671:

Sorry if I wasn't clear earlier in the thread; I think your list of 4 displays is a good one:

  • SSD1306 OLED (1 BPP)
  • SSD1327 OLED (4 BPP)
  • ILI9341 LCD (16 BPP or 18 BPP)
  • A three color EPD

As for specifics (as close to those as you can get on Aliexpress...):

  • SSD1306: Any I2C 0.96" OLED module, e.g. https://www.aliexpress.com/item/32638662748.html (any colour)
  • SSD1327: I don't have much experience with these modules but this looks like a common form factor for the modules. Shall we go with the I2C one? We can jumper between this and the SSD1306.
  • ILI9341: this module is the most common form factor and supports SPI.
  • EPD: The 2.13" and 2.9" modules here look like a common form factor. The connectors appear the same, so making a layout to accept both sizes with two sets of mounting holes would be easy enough.
rfuest commented 2 years ago

I picked a semi random store on AliExpress and tried to find all displays there:

The prices include VAT and with shipping I would need to pay 37.53€.

rfuest commented 2 years ago

Or from this store, which actually might be the same company: https://greatzt.aliexpress.com/store/1916536 They have free shipping for orders above 35.90€, which means that the total would be less if I order some more components to reach that threshold. And I've actually used that shop in the past.

jamwaffles commented 2 years ago

Or from this store, which actually might be the same company

Looks good (although now I'm going to be browsing that site until 2am so thanks for that ;)). Let me know when you've ordered and we can arrange some funds. For the sake of consistency, if you could post the links here too I can order the exact same modules.

rfuest commented 2 years ago

These are the items I'm going to order:

Looks good (although now I'm going to be browsing that site until 2am so thanks for that ;)).

Sorry to hear that, but I'm also glad that I'm not the only person this has happened to :wink:. Did you find anything that could be of interest to our project? I still need to spend another ~4€ to get free shipping.

rfuest commented 2 years ago

I'm thinking about adding a 1.3" 128x64 OLED to the order. The additional size would make it easier to see individual pixels.

There are two versions:

For the OLED footprint on the PCB I would like to make it compatible with both the 0.96" and the 1.3" modules. This primarily means that we need to have enough room around the connector to fit an 1.3" module. But there is some inconsistency in the pinouts. The 1.3" modules and the 0.96" have swapped VCC and GND pins. There seems to be solder jumpers on the 1.3" module to swap the order of the VCC and GND pins, but to be sure I would like to also include jumpers on our PCB.

jamwaffles commented 2 years ago

Did you find anything that could be of interest to our project?

I didn't, although I was more browsing than looking for anything specific.

I'm thinking about adding a 1.3" 128x64 OLED to the order.

I'm familiar with the SH1106, and the contradicting driver ICs on the "claimed" one is suspicious. I don't know how compatible the SSD1315 is but considering there's already a driver for the SH1106 that seems like the better option.

For the OLED footprint on the PCB I would like to make it compatible with both the 0.96" and the 1.3" modules.

Sounds good, and jumpers for the swapped pins don't seem like too much of an issue, as long as we don't forget to change them when swapping displays.

jamwaffles commented 2 years ago

The 1.3" modules and the 0.96" have swapped VCC and GND pins.

I just remembered; the 0.96" SSD1306 and the SH1106 modules I have both use identical pinouts, so we might not even need jumpers as long as the modules haven't changed in the few years since I ordered them.

rfuest commented 2 years ago

I didn't, although I was more browsing than looking for anything specific.

One item caught my eye: https://www.aliexpress.com/item/4001118194342.html It's unfortunately not using a RISC-V ESP32, but it would be a cheap non ARM Arduino compatible board. Do you think that would be useful at all or should we start with ARM compatible boards (like a Nucleo) and care about other architectures later?

Sounds good, and jumpers for the swapped pins don't seem like too much of an issue, as long as we don't forget to change them when swapping displays.

That would indeed by bad. I still hope that we get the same pinout on all modules or at least can change some of them to match the others.

I just remembered; the 0.96" SSD1306 and the SH1106 modules I have both use identical pinouts, so we might not even need jumpers as long as the modules haven't changed in the few years since I ordered them.

Judging by the images on AliExpress and the banner image in SH1106 crate repo they have changed. But you never know what you get.

jamwaffles commented 2 years ago

Do you think that would be useful at all or should we start with ARM compatible boards (like a Nucleo) and care about other architectures later?

Let's start with ARM. I'm sure we'll start seeing RISC-V ESP-32 Arduino compatibles soon so I think we just need to wait.

Judging by the images on AliExpress and the banner image in SH1106 crate repo they have changed. But you never know what you get.

Typical, yeah who knows what will end up coming through the post. Hopefully not some kind of hair care product the homepage keeps advertising to me...

rfuest commented 2 years ago

Typical, yeah who knows what will end up coming through the post. Hopefully not some kind of hair care product the homepage keeps advertising to me...

Let's hope so. Hair care products aren't the worst things I've got recommended by AliExpress. but let's no go into details here.

If you don't have any more changes we should make, I'll order these items today:

jamwaffles commented 2 years ago

but let's no go into details here.

Absolutely :D

That list looks good, feel free to make the order. I'll follow suit soonish. Throw me an email or a message on Matrix and we can sort funds out (or we can wait until you've got some devboards too).

rfuest commented 2 years ago

That list looks good, feel free to make the order. I'll follow suit soonish. Throw me an email or a message on Matrix and we can sort funds out (or we can wait until you've got some devboards too).

OK. I'll wait until we have ordered everything.

rfuest commented 2 years ago

Just a quick update to let you know that my display order has arrived today. All displays arrived in one piece and the larger displays were even packaged in plastic cases. I didn't have time to hook up the e-paper and TFT yet, but all I2C OLEDs did work. It took me a while to remember that we did choose a SH1106 based OLED and not a SSD1306 based one, but other than that it was pretty painless to get the displays working.

jamwaffles commented 2 years ago

Time to necro this thread...

In terms of target architectures, IIRC we want to have:

We never decided on exact dev boards IIRC, but to ease things along perhaps we should target a specific chip, not a dev board? It's nice being able to plug an Arduino shield into something, but it's not too hard to hook up SPI/I2C with some DuPont cables. If we end up making an adapter board, it could be Arduino-shaped but provide normal pinheaders too.

To that end, I have various different shaped boards with the following on:

Alas I don't have an H7/F7 board but I'm happy to leave that up to your choice.

It would be good to find some overlap with stuff you already have so we don't need to order as much.

Does the above make any sense? I may have missed something from the previous threads - let me know.

rfuest commented 2 years ago

We never decided on exact dev boards IIRC, but to ease things along perhaps we should target a specific chip, not a dev board? It's nice being able to plug an Arduino shield into something, but it's not too hard to hook up SPI/I2C with some DuPont cables. If we end up making an adapter board, it could be Arduino-shaped but provide normal pinheaders too.

I really want to keep the burden of testing stuff on real hardware as low as possible. Otherwise my brain will, most of the time, tell me that testing with the simulator is good enough. Not having to deal with tangled DuPont wires would make this less likely.

IMO we don't need to start with a large variety of platforms. Even stating with two configurations, one with slower serial displays and one with a fast parallel display, would be enough to get us started. We can always add additional test platforms later.

My suggestion for the serial display platform would be to use a RPI Pico. The Pico is very popular, relatively cheap and easy to obtain (and I also have a few of them lying around). Designing a simple adapter that takes a Pico and the four serial displays we picked shouldn't be too hard. IMO it would be easier to just use the Pico than to try to also make it Arduino compatible and I don't have any Arduino stuff that I could reuse.

  • gd32fv103vbt6 (also has a flat flex display connector)

Is it this board? https://wiki.seeedstudio.com/SeeedStudio-GD32-RISC-V-Dev-Board/ That actually looks pretty nice, because it is one of the cheapest dev boards I've seen that uses a parallel LCD, but unfortunately it doesn't seem to be available anywhere. I only have a Sipeed Longan Nano Board with GD32VF103C8T6 and serial LCD.

Alas I don't have an H7/F7 board but I'm happy to leave that up to your choice.

I'll need to check if any boards are still available or if some did get restocked. I haven't followed the status of the STM32 shortage lately.

jamwaffles commented 2 years ago

I really want to keep the burden of testing stuff on real hardware as low as possible.

Understood, and largely same with me :). It would be very nice to be able to run a single command and have everything magically just work.

IMO it would be easier to just use the Pico than to try to also make it Arduino compatible and I don't have any Arduino stuff that I could reuse.

Would it be worth considering this adapter board? I don't particularly like Arduino shields but if it means we don't have to make new adapters for a lot of dev boards (looking at you, Nucleo), it might be beneficial.

Is it this board? https://wiki.seeedstudio.com/SeeedStudio-GD32-RISC-V-Dev-Board/

It is indeed. The only board with a parallel interface I own I believe, unless the STM32F429 on this Nucleo-144 can have a parallel interface broken out.

Let's focus on the Pico first then. It's probably a better idea to iron out any hardware bugs one board/MCU at a time anyway.

rfuest commented 2 years ago

Would it be worth considering this adapter board? I don't particularly like Arduino shields but if it means we don't have to make new adapters for a lot of dev boards (looking at you, Nucleo), it might be beneficial.

That's true, that it would be more flexible. One advantage of using the Pico directly is that it should be possible to connect each of the 4 displays to a dedicated port on the controller. If I remember correctly we have two I2C and two SPI displays. IIRC the Arduino pinout only has one I2C and one SPI available. We would need to make sure we don't have two displays with the same I2C address and be more careful about the SPI signals if we don't want to add jumpers to select between displays.

Let's focus on the Pico first then. It's probably a better idea to iron out any hardware bugs one board/MCU at a time anyway.

Ok. But I would still like to also get a parallel display. The last time I tried to use a parallel display did immediately reveal some performance issues, which weren't apparent when the SPI communication took a large percentage of the runtime.

jamwaffles commented 2 years ago

One advantage of using the Pico directly is that it should be possible to connect each of the 4 displays to a dedicated port on the controller.

Oh that's a very good point. I have Picos but I have not ever actually powered one up... can you tell? Time for a bespoke Pico baseboard then.

But I would still like to also get a parallel display.

Of course. Are there any inexpensive STM32 dev boards (preferably in stock)? I'm hesitant to jump into the RISC-V GD32 yak shave, even though I have one on a board.

rfuest commented 2 years ago

Oh that's a very good point. I have Picos but I have not ever actually powered one up... can you tell? Time for a bespoke Pico baseboard then.

Don't we all have a dev board pile of shame ;) I also have to confess that I might have used C on the Pico more often than Rust.

Are there any inexpensive STM32 dev boards (preferably in stock)?

I did just look and didn't find any really good candidates. I've made an offer for a classified ad for the STM32H7B3I-DK, but that wouldn't help if we want to have the same hardware. And the cheapest regular offer for the board was > 100€. The next best thing that is available from my list https://github.com/embedded-graphics/embedded-graphics/issues/671#issuecomment-1105636853 is the STM32F723E-DISCO. But it is missing the hardware acceleration features.

jamwaffles commented 2 years ago

I also have to confess that I might have used C on the Pico more often than Rust.

Don't make me remove your admin privileges

I've made an offer for a classified ad for the STM32H7B3I-DK

Good luck! As long as the hardware is close enough I can either cargo run an example (or however we do testing) or can run it with minimal changes, I'm happy with that. I doubt I've loosened the requirements much by saying that but it might help a little.

But it is missing the hardware acceleration features.

Worth waiting for I think, so we can get a broader idea of perf.