• Squishy wires

    Xasin09/02/2021 at 13:57 0 comments

    So!

    How have things gone with this project lately, you may ask? I may or may not have forgotten to add a few project logs in between... That would be my bad.

    But the good news is, the PCB design is almost complete! And it is a gorgeous looking nest of wires.

    TapV2's schematic
    Without a four-layer board design, this would have been nigh impossible, and even with the two extra layers it can be quite a squeeze! Luckily a clean, horizontal/vertical layout makes it much more headache-free.

    As mentioned in the previous log, the main battery charge IC had to be replaced. This was managed quite nicely, and the resulting mess of wires can be seen down below - the STM32 was squeezed in next to a USB-C port and now controls most of the power sequencing.

    One of the changes resulting from further component shortage is that this STM now also includes USB connection, and the Power-Only USB-C port was replaced with a USB2.0 port. This will allow Tap to act as USB HID, and perhaps I will even utilize a fake mass storage device to write the ESP32 binaries onto the IC to update it that way?
    Who knows!

    In any case, now that all components are fitted and most of the wiring has been completed, it is only a matter of polishing the design, double-checking tolerances, and ordering the PCB!

    A lot of components are, sadly, out of stock, which will inevitably lead to a long wait on some materials. It is unclear how long it will take to actually assemble and build the badge due to this - some components are back in stock by the end of this year, some might not recover in a year, some I can leave out...

    In any case, we will see when we get there.
    And until then, there will be plenty of other projects to work on and polish - a rework of the Smart Home and LZRTag, a little Christmas gift, and perhaps even a simple "DIY Goto" for a Telescope we wanted to acquire :)

  • Turning problems into opportunities

    Xasin08/01/2021 at 17:48 0 comments

    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!

  • Adding some details

    Xasin07/26/2021 at 21:20 0 comments

    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

  • Squishing the sensors

    Xasin07/19/2021 at 21:23 0 comments

    Neatly lined up sensors
    Those that look closely may see that the boundary of the sensor space looks a bit like the Mobile Emitter's cutout - you'd be right!

    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!