In today's project update, I'm excited to share that my ESP32-TV boards, fresh from PCBWay, are operating flawlessly! We've successfully dealt with the USB2244 conflict with the ESP32, and the battery charging issue is now a thing of the past. We've also made some awesome additions like a microphone to our board. The real MVP though, is the USB2244 chip that’s given us significantly improved read/write speeds - making it perfect for handling video files. Next on the agenda, figuring out a solution for the non-standard display connector. As ever, there’s progress, there’s problems, and there's David Bowie animated gifs!
[0:00] So my new ESP32-TV boards have arrived from PCBWay, and as you can see they’re all working.
[0:07] So the speaker’s working, the infrared control’s working, and the SD card is being read by the ESP32 to play the video.
[0:18] So this board fixes a few of the issues we had in the previous board.
[0:24] So one of the problems we had previously is the USB2244 was conflicting with the ESP32.
[0:34] So what was happening is there was a hidden pull-up resistor on the reset line,
[0:40] which was causing the USB2244 to be active at the same time as the ESP32, and then the USB wasn’t connecting.
[0:49] So we fixed that with this little bodge resistor that basically made my pull-down resistor on the reset line a lot stronger.
[0:56] And that fixed that problem.
[0:58] So if we look on the new board, what we have now is this little MOSFET which is holding the reset line low so we don’t conflict with the ESP32.
[1:11] So that solves the problem of these two ICs conflicting.
[1:15] Now the other issue we had, which I can show if I bring in my multimeter, is the battery charger on the old board.
[1:24] We slightly messed up the connections on that.
[1:28] And if I show you the voltage on the battery pins, you’ll see the problem there.
[1:34] So let’s try and probe that.
[1:39] So if we probe the two pins here, then what you can see is we’re trying to put 4.8 volts straight into the battery.
[1:50] So what I’ve done is I’ve messed up the power control circuit and I’ve basically connected the USB straight through to the battery.
[1:59] So not what you want to be doing.
[2:03] So if we look on the new board, and I’ve got a battery connected to this so we should see some sensible voltages.
[2:10] So let’s just plug this in.
[2:15] And then we’ll measure the voltage at the battery.
[2:23] So let’s just probe that.
[2:30] So there you can see a much more sensible charging voltage.
[2:34] So we’re getting around 4.2 volts coming into the battery, which is what we should be getting.
[2:42] So that’s those two fixes put in place on this new board, and it seems to be working really well.
[2:49] So that’s good.
[2:54] There are some more notable additions.
[2:57] So what we now have, I realised I had some spare pins, so I’ve removed one of the QUIIC connections.
[3:04] So on the previous board, which is over here, we had these two QUIIC connectors.
[3:13] I decided I actually only needed one QUIIC connector, so we just have one QUIIC connector.
[3:18] I have now used the correct logo for that as well.
[3:22] And that meant I freed up some pins, so I thought why not add a microphone?
[3:28] I thought that might be a useful addition to our board.
[3:32] So let’s flash a little sketch onto the system and try out the microphone.
[3:38] So I’ve flashed my TFT audio monitor onto the board.
[3:44] Let’s play a bit of music, and we can see that working.
[4:04] So that also works pretty well.
[4:07] Interestingly, this is a PDM microphone.
[4:09] Now it’s actually getting surprisingly hard to get PCM microphones, and PDM microphones
[4:15] are remarkably cheap compared to the old PCM microphones that I used to use.
[4:20] So I used to use the ICS-43434, which is a PCM microphone, but this is just a PDM microphone,
[4:29] and it’s about a third the price of the ICS-43434.
[4:35] It’s pretty good, seems to work well.
[4:37] So that’s quite a nice addition.
[4:38] I think we can revisit some of the previous audio projects that we’ve done, and use this
[4:43] board to try them out.
[4:49] So everything on the board is working nicely.
[4:52] So our USB2244 is not conflicting with the ESP32.
[4:56] The infrared receiver is working, the screen’s working, and the microphone’s working.
[5:02] So the whole point of doing this in the first place was to make the access to the SD card
[5:08] much faster.
[5:09] So we can use the ESP32 in a mass storage class mode, and that will let us talk via
[5:14] the USB to the ESP32 to the SD card.
[5:18] So I’ve downloaded a sketch to the ESP32 to switch it into mass storage mode.
[5:24] So let’s see what the speed is when we’re just using the ESP32.
[5:28] So I’ve got a little command here that will write a file.
[5:32] So this will write around 10 megabytes to the ESP32 and SD card, and you can see our
[5:37] little LED is flashing, showing that we’re writing some data.
[5:45] So that took about 10 or 11 seconds to write 10 megabytes.
[5:50] Let’s test the read speed.
[5:53] So we’ll clear all the caches.
[5:58] And now let’s try reading the file.
[6:12] So again, that gets us a similar result.
[6:14] So around 10 seconds.
[6:15] And we can repeat this process and we get pretty consistent results.
[6:19] We sort of top out at around 1 megabyte per second writing and 1 megabyte per second reading.
[6:25] Now the limitation here is just the USB implementation on the ESP32.
[6:29] That’s all it can actually do.
[6:31] So we can’t really get much faster than this and I’ve done a lot of hacking around to try
[6:34] and make it faster.
[6:36] So what I did was I added the USB2244 chip.
[6:40] So what that allows us to do is we can hand off the SD card to the USB 2244 and then have
[6:47] that talk over USB, which should be much faster.
[6:50] So let’s give that a go.
[6:52] So I’ve flashed a sketch onto the ESP32 and the ESP32 is just playing this animated gif
[6:59] of David Bowie playing with his balls.
[7:03] Now what I’ve done is I’ve wired up the boot button.
[7:06] So when we hit boot, we should switch over to the USB 2244 and hand the USB over to it.
[7:12] So let’s try hitting the boot button.
[7:15] So there we go.
[7:16] We’ve got USB2244 on and we can see the activity LED for the USB2244.
[7:22] So let’s try the speed test again and see how well that works.
[7:27] So we’ll write a file.
[7:30] We need to come back into the SD card and let’s try writing our file.
[7:38] So there we go.
[7:42] We now write 10MB in just over one second and I can repeat that and we get even faster
[7:48] depending on how things are working.
[7:51] Let’s clear all the caches again and we’ll try reading this file.
[8:01] So again, do it in about half a second.
[8:03] So we’re writing in around 10MB/s or maybe 17MB/s and we’re reading in about 20MB/s.
[8:13] So that’s a massive speed up in terms of SD card performance.
[8:18] This is particularly useful if we’re writing video files to the SD card.
[8:23] Now of course we can just unplug the SD card and plug it into our computer but that’s not
[8:27] very convenient.
[8:29] Now the only slight annoying thing with this is to get out of the mass storage mode, we
[8:34] have to hit the reset button and reboot everything.
[8:36] And now we’re back to David Bowie playing with his balls again.
[8:40] So there we go, nice little animated GIF and then we can just do USB2244, activated, our
[8:48] little flashing light turns on and we’re connected to the computer via the USB, the USB2244
[8:56] and to the SD card.
[8:57] So that’s a really nice fast connection.
[8:59] So that’s working really well.
[9:01] So we’ve achieved our goal of this entire project.
[9:05] So we now have a tiny TV working.
[9:08] We have a super fast access to our SD card, I mean I say super fast, it’s still USB 2.
[9:14] Maybe at some point we’ll look at USB 3, that could be an interesting project.
[9:18] So we can copy video files onto the SD card and then we can play them on the tiny TV.
[9:23] So that’s a pretty good result.
[9:25] Now there’s one thing I’m not too happy about and that’s the display.
[9:32] As you can see I’ve had to solder the ribbon cable on directly to the PCB.
[9:37] Now the problem is, the standard pitch that is used for this display, or this particular
[9:43] display is 0.7mm.
[9:46] Now that does not match any known connector standard known to man.
[9:51] So it’s been impossible to find a socket that I can plug this directly into.
[9:57] That’s ok for me, I can solder this on.
[10:00] I did have a few issues when I was soldering, the first few tries didn’t really work very
[10:04] well, I didn’t make good connections in all the pins, but it’s not ideal.
[10:09] So what I really want to do is get a socket for this.
[10:14] So I was recently looking at the Unexpected Maker TinyWatch.
[10:21] Now if we crack this open, the display is actually the same size as my display and he’s
[10:30] managed to find a nice one with a connector.
[10:34] So I’m kind of tempted to switch over to using the same display as he’s using and get rid
[10:40] of my display which has the funny non-standard connector.
[10:44] It’s actually the tiny watch that inspired me to put a microphone on my board because
[10:48] I thought that actually looks quite nice.
[10:51] Now the only issue is, if we look at the schematic for the tiny watch, we can see that we need
[10:57] 1, 2, 3, 4, 5, 6, 7, 8, 9 pins to control the screen.
[11:07] Now if we look at my screen, we only need 1, 2, 3, 4, 5 plus maybe 1 for turning the
[11:17] screen on and off.
[11:18] So we have 6 pins and we need 9 pins.
[11:23] So that’s a bit tricky and we still probably need our control for the power for the thing
[11:29] so we actually need 10 pins.
[11:31] So I need to find another 4 pins to actually drive the touch version of the display and
[11:37] have a nice connector.
[11:39] Now there are a couple of options that I could do, so one of the things I have at the moment
[11:45] is I have several different controls for powering things.
[11:48] So I have a control for the TFT, I have one for the IR power, I have one for the SD card.
[11:56] So that’s 3 controls that could probably be put all onto one control so I would get 2
[12:03] pins from that.
[12:04] So that’s 2 pins I can find.
[12:07] The other thing I have is I do have these two battery monitors and power monitor for
[12:14] the USB.
[12:15] I can detect when the USB is connected and I can detect when the battery is connected.
[12:20] So potentially that’s 2 pins that I could free up if I get rid of the battery monitor
[12:26] and the USB power detect.
[12:28] So that would give me 4 pins which would give us what we need.
[12:32] The other option I have is the built in LED pin so I could lose the LED or what I could
[12:40] do is get rid of having 4 parallel lines for the SD card.
[12:46] So that would free up 2 pins so maybe that would be an option as well.
[12:52] So not entirely sure what to do in this situation.
[12:55] I do quite fancy having a nice socket for the display, it just makes life much easier
[13:01] and this sort of soldering is just not ideal, it’s very fragile, the display moves around
[13:08] quite a bit and it’s very easy for the ribbon to be damaged or the soldering to be damaged.
[13:14] It’s not particularly robust.
[13:16] So let me know what you think in the comments.
[13:19] Shall we try and put a nice touch screen onto our tiny TV project?