3 days ago •
There is a bit of a problem with Tap right now... Or, well, everything in general.
The chip shortage seems to have grown just a little further outward, and captured the battery charge IC that I was initially planning to use. There are alternative models, of course, but... I thought, why not try and replace it with components I am more comfortable with using. The BGA is very tricky to solder, after all.
This, however, turned out to be tricky. This single charger IC has so much functionality all in this little module:
- 1.8V LDO
- 2x Load switch
- Button reset circuit with power on/off
- ADC for battery measurement
At first I wanted to use discrete components to fill this gap, but that quickly turned into a bit of a mess, because for the button reset function alone you need three new ICs.
But... What about a separate controller? Something low powered, like an STM32L0 at low clock speed. This would be able to control the load switch, it has an ADC, and might even provide extra GPIO pins if necessary.
And then it hit me - it can do a lot more than this. It can, for example, take over the SPI slave role required to extract the camera feed of the ADPS gesture sensor, something the ESP might struggle with. It could act as battery gauge, estimating battery current over a resistor.
Best of all, it could read the ESP32's UART log output.
When the ESP crashes, it dumps a crash message to UART, which cannot be rerouted to, ex., MQTT or Bluetooth, because it's crashed. But the STM? It could happily receive the crash message, buffer it, and then write it onto the OLED screen that is built in, or send the crash message back to the ESP once it rebooted so it can be sent to a log server.
Even though STMs are in short supply and a bit more expensive, I did find that digikey still has the STM32L051 series - at 4€ in single quantity, but better than nothing.
This will, of course, take further work to program and get right, but it could elevate the badge even further.
More importantly, this STM external coprocessor could be reused in a large number of other projects to fill in some of the gaps that the ESP leaves in terms of analog, power consumption and IO pin count.
I will have to play with the idea and report back!
07/26/2021 at 21:20 •
And, well, by details we mean... Everything else.
The board is both growing and shrinking - the former in the number of components that are already placed on the board, the latter in the amount of space that is still available for things.
All in all, the sensor slot has been populated pretty much completely, with only a few components left to sprinkle in such as support capacitors.
The rest of the board has also gotten models for programming, the illumination and signalling LEDs, as well as a few other components - FreeCAD has been especially helpful in the creation of missing 3D models for things such as the speaker and OLED screen.
A few components are still missing - mounting holes for the M1 screws to keep the casing together, and a little bit of passive circuitry all around.
The OLED screen might also change position a little, as currently it is quite squished in, though I always knew this would be the case.
She's looking better with every update, and with a few more hours of gently placing everything where it belongs, she's ready to order!
That is, if we can find a manufacturing service up for the task. This board features a rather large number of unusual footprints with individual parts that might throw a P&P machine off...
Input on where to get this done is greatly appreciated.
Also, for those wondering how big this PCB is in reality, here's a 1:1 scale print:
All I have to say is... Oh dear
07/19/2021 at 21:23 •
As the description of this project already describes, TapV2's main purpose is to be a playground of various sensors and other bits of data processing. Not for any specific reason, mind you - a lot of these elements here are just sensors we'd love to try out, or that we might find useful once a year and would like to have on hand.
Some of them may even be genuinely useful!
Right now we are still in the process of squishing the sensors we already selected as close together as possible and might go ahead and add one or two more if we find them interesting enough.
Perhaps the comments could even recommend something to add to the arsenal.
For now, the list is already quite capable.
Going from left to right we have:
- A pulse oximeter that can measure pulse and SpO2 levels when the user places their finger on it.
- An LSM6DSM 6-axis gyro (although almost all MEMS gyros are out of stock for a few years - this one might have to be retrofitted somehow, or salvaged from another board)
- An APDS-9500 gesture sensor. Although simple looking at first, this little device sports a 60x60 pixel IR array that can act like a rudimentary camera, potentially even enough to read QR codes!
It is the main motivation for this board, and will hopefully serve us well.
- A BME680 air quality sensor. Aside from the standard humidity, temperature and pressure, the 680 also reads "Volatile Compounds" that correlate roughly to how used-up the air is, and can give warnings about low air quality.
- A I2S MEMS microphone, used for simple whistle command input as well as Fourier Frequency analysis. Being able to isolate that one frequency that's annoying you should always be easy.
- And STM ToF LIDAR with about 1m range in good conditions. Not only will it replace a slide rule, it could also be used to automatically measure vibrations up to 50Hz!
The very rightmost components are for communication, such as a "On-Ground" WiFi antenna chip, and a IR module.
One last potential candidate as sensor is an ambient brightness and UV meter, to warn about excessive solar radiation, however the only part we could find for this has a big "Not recommended for new design" label across the datasheet, so it's a "maybe".
Oh, and those squares that are lined up next to every sensor module?
Those are 1.8mm sized NeoPixel clones, to illuminate each sensor's status and readouts - mainly to look flashy and interesting.
Let's see how hard it is to wire everything up. There is a reason why we chose automated assembly and 4-layer boards right from the conception of the project!