In this project, you’ll build a sensor monitoring system using a TTGO LoRa32 SX1276 OLED board that sends temperature, humidity and pressure readings via LoRa radio to an ESP32 LoRa receiver. The receiver displays the latest sensor readings on a web server.
We’ve been prototyping the Bus Pirate Ultra with a 240 x 320 pixel 2 inch LCD, but it’s just a bit small and hard to read from a distance. A 2.8 inch version is available that fits the full width of the Bus Pirate PCB, with the trade off of bigger pixels/lower pixel density. We bought a few displays from various “manufacturers” on Taobao and made up a daughterboard. It failed spectacularly because the datasheet was so wrong!
We don’t have to go beyond pin 1 to find a major and obvious error. The datasheet lists pin 1 as the LED backlight anode, and pins 2-5 as the cathode. The printing on the flex connector makes it clear that four cathodes (K1-4) join into a single trace to pin 1. A single anode (A) trace connects to four pads on the connector (pins 2-5). The backlight connections are backwards.
Coincidentally, datasheets for other similar displays (2.8 inch, 50 pin connector) match the corrected pinout. This datasheet just had it backwards. We reversed the backlight power and ground on the PCB by drilling out a trace and creating some strategic solder bridges. While the LEDs light, the display doesn’t respond to any commands so other connections could be wrong.
That’s not all. The flex cable is actually several millimeters shorter than listed in the datasheet, so it can’t reach the connector through the slot in the daughterboard.
We had similar issues with this supplier’s 2 inch display. The dimensions in the datasheet are a bit off, and their sample initialization code doesn’t work. We asked for an updated datasheet and received three different versions, none of which matched the actual display.
Their Taobao page has pictures of a factory and a nice section on after sales support. A charitable guess is that they manufacture runs of custom displays, and sell the excess on Taobao. That would explain all the different datasheets they so readily have available. We tried to get another grab-bag of PDFs for the 2.8 inch display, one of which might match the actual pinout, but at this point they got tired and ghosted us.
Will we stop buying prototyping samples on Taobao and 1688? Definitely not! It’s a great way to see what’s a cheap commodity product. This process plays out in the Shenzhen markets as well, people sell a lot of stuff without knowing exactly what it is. It’s kind of up to us to know what we’re buying, and sometimes it’s a crapshoot. When we find a sample we like, it’s time to send someone up to the factory to meet the boss, drink way too much tea, and ensure we’ll have a steady and consistent supply in the future.
We recently started restoring a vintage1 analog computer. Unlike a digital computer that represents numbers with discrete binary values, an analog computer performs computations using physical, continuously changeable values such as voltages. Since the accuracy of the results depends on the accuracy of these voltages, a precision power supply is critical in an analog computer. This blog post discusses how this computer’s power supply works, and how we fixed a problem with it. This is the second post in the series; the first post discussed the precision op amps in the computer.
Bus Pirate “Ultra” v1d is stuffed and about half tested. This should be the last alpha “figuring out if we can pull this off” version. New in this revision:
Analog voltage measurement is now done from the FPGA using a 12bit 1 million samples per second ADS7042 Analog to Digital Converter. This will let us pipeline voltage measurement commands with other bus commands and reduce dependency on any specific MCU.
The programmable output power supply is now controlled by a DAC104S085CIMM Digital to Analog Converter chip, instead of the DAC in the MCU. This further reduces our dependency on a specific MCU, and will later allow us to control the voltage regulator from the command pipeline in the FPGA. It may be possible to simulate different power supply conditions and glitches, for example.
A lot more thought
went into the programmable output power supply. V1d measures current
through a shunt resistor, and we added a small load to test it.
There’s several other goodies in there, but we’ll reveal them later.
In addition to sampling voltages on each IO pin from the FPGA, we’re now sampling several other voltages from around the board (power supply output, current consumption, etc) . We swapped the 8 channel 74HCT4051 analog multiplexer with a 74HCT4067 16 channel multiplexer. This part of the board needs some more thought because some of the voltages would be better measured without the divide by 2 resistor divider currently used after the op-amp.
The display daughter board now uses a 0.5mm pitch flex connector. We though these connectors and the flex cables would be a nightmare to work with, but they’re actually a lot of fun. They’re really compact too.
After a little more testing we’ll get to work on v1e, which should be the first beta and possibly the first version ready for a small production run. Find the latest updates and follow a group build of v1d in the forum.
Driving that IC is pretty simple, expecially if you have a dedicated SPI hardware interface, like many microchip has. The ATmega8, used in this example has a dedicated SPI Control Register (SPSR) that one can use to setup the SPI interface. This library can drive more then one MCP49XX of the same series at the same time, this is done just by selecting the chip using a SS channel for each one.
This project is an upgrade to a previous project of mine – the DIY IoT smoke alarm. It is a more advanced version that uses dedicated hardware rather than the generic “Funky” project + external components. In essence, the module integrates into cheap smoke detectors and provides wireless event transmission plus periodic battery measurements to cloud infrastructure using BBoilRF as a gateway (over MQTT).
Recently I got a Marconi Instruments 2019 signal generator, capable of generating signals from 80Khz up to 1040Mhz. It can also modulate these signals with AM, FM and more. This instrument is from the mid 80s and is, as far as I can test, still in good operational order. A signal generator capable of generating over 1Ghz is pretty impressive, especially in the 80s, so let’s have a look inside this unit and see how it’s made.