[M][T] ESP32-S3 MINI and other changes

A project log for Tetrinsic [gd0041]

A continuous, motorized fader that is force sensitive, haptic and self-sterilising.

kelvinakelvinA 03/21/2023 at 22:432 Comments

I wasn't sure if this log should be written or not but I'm going to do it anyway. Wait who said I had to write it? Let's speak it! Windows 10 dictation for the win with WIN + H!


So this all started yesterday when I was looking for a Bluetooth chip. 

The reason why I was looking for Bluetooth chip was because I counted all the pins that I was using for the M032 and it was 20 / 30 pins available on the RP2040. It seemed that 6PWM gives me more control so I'm going to keep it in instead of getting another 2 - 3 additional pins. I looked at the LCD screens and I need 7 pins for both of them. 

Then, because I plan to have IntProv on here, I looked into buzzers and what notes they could produce. It sounds like "passive" is the type I want, since "active" buzzers take in a solid wave and turn that into a solid note. 


So, thinking of TimerSpy, I was thinking "Can we go all the way?" and looked for an SPI Bluetooth module. This is the cheapest one available:

And it had WiFi tacked on. At least it's BT v5.

This was all quite surprising. For some reason, this was an engineering sample even though there were 7000 in stock, there were 4 entire megabytes of flash and 408 kilobytes of RAM ! That's even more RAM than the RP2040.

So then I did a little bit more digging, and found the S3 MINI for £2.75:

And this is jaw-dropping for me. I didn't know that there were other chips beside the RP2040 with dual cores. 
It's smaller than the WROOM module, but 15.4 is kinda gargantuan compared to the 7x7 RP2040 or 4x4 M032. The nice thing is that the oscillator and the antenna header is part of the module. 

I counted the GPIO pins and found out that it's still 30. The good news is that I don't lose pins for Bluetooth. I believe the BOM increase is less than £10 compared to an RP2040 + 8MB FLASH chip + oscillator, and the PCB space would probably be similar even though they would be separate components. I can now have a wireless Tetent without having to install an extra board and interface with it. I guess I also get free Wi-Fi.

Looking at the pinout, there's a wall of GND pins so I'm thinking of having those connections on the top layer and root or the other pins on the bottom layer. This means that the module looks like this on the PCB:

PCB space was one of the things I was trying to maximise. It allows me to obtain opportunities like this one.

Internal Measurement Unit

Turns out a 9 axis IMU singular chip is £16 on digikey. That's the cheapest one in stock anyway. AliExpress has (somewhat large) PCB boards for £4 and as low as £2 (shipped) if I went 6-axis. 

I feel like I only need a 3-axis accelerometer to correct for the no-load force of the load cell when in a different orientation. I assume the polling frequency required will determine if I need to have this per Tetrinsic or if I can have 1 singular one in Tetent. I doubt a user would be changing accelerations often enough, but I am talking about 8-10g actuation ranges and walking (which is something I'd like to be able to do while typing) is shaky. The cheaper ones are just under £1 on AliExpress, though a fully manufactured board is still cheaper. The LIS2DH12 looks to be a good, cheap and small option that doesn't require many additional components and can run at least 1KHz.

Looking at the PS5 controller, it does seem that they go with 6-axis. I've gone down this list and searched it up on AliExpress, and the first one with a good price is the LSM6DSL. It's about £1.30 each + £3.21 shipping. I searched "IMU" on the store and there's a 10pcs listing for the BMI-160, which is £6.72 + £3.21. That BMI160 lists "augmented reality" and "immersive gaming" as potential applications which is what I'm looking for. 


I think that, as long as I only need 1 per Tetent, using I^2C (or IIC, as some AliExpress sellers call it) should be fine for external boards. At least then I'm using 28 / 30 GPIO pins.

I forgot that #T^2 TyMist [gd0138] is no longer happening due to optical constraints, so audio output is once again required for Tetent... maybe. Well I know it'll sound better than using buzzers in Tetent and TimerSpy so I've been looking into USB audio interfaces with the EPS32 to see if it's possible.

I might try hybrid dictating and typing logs more often.


kelvinA wrote 04/17/2023 at 16:22 point

Just found out that the cheapest 12MHz oscillator (for a RP2040 config) costs 65p, further reducing the already small BOM price difference. 

  Are you sure? yes | no

RunnerPack wrote 03/22/2023 at 13:11 point

For audio on the ESP32, you should use an I2S DAC.  Here's one of many pages about it:

  Are you sure? yes | no