WROOM32 based, removable ESP32 module and associated programmer

Bitsoko-ESP32-module-v2

So we have been developing a module for the ESP32 above that we can use. Its based on the ESP WROOM32. The design are made in KICAD. The module is removable from the programmer and can be mounted on a product without soldering which is often useful for testing without having a dedicated programming section per product which increases product cost, for something that will be used once.

There is also an associated minimalistic programmer with a standard JTAG 20 pin header where one can connect a JTAG adapter for debugging. Design specifically contains no surface mount parts so should be easy to assemble without importation. The programmer can also be used as a development board.

The designs are in their initial versions but work well. Details shall be released as the project matures and bugs eliminated.

Draw timing diagrams in javascript with wavedrom

Wavedrom is a fantastic way to mock up a timing diagram. A timing diagram shows a sequence of how several signals change with time. Usually the signals are wire-line, meaning that they are electrical signals flowing through a wire. They are usually used to represent wire-line protocols such as SPI, I2C etc.

The changes are represented by single letter markers showing the state of the signal at a step in the plot. Example is a high to low transition represented as ‘pl’ among other signal changes. It is useful in describing a system of signals and may help one gain insight as to the time-relationship between signals. A tutorial may be found here.

The image below is of a timing diagram I previously constructed and associated code below:

timing_diagram

{signal:
[
{name: 'Column shift SRCLK', wave:'l.p|p.|p.|p.|p.|p.|p.|p.|l...'},
{name: 'Column data SER', wave:'x5..5..5..5..5..5..5..5..x...', data: ['ROW 0','ROW 1','ROW 2','ROW 3','ROW 4','ROW 5','ROW 6','ROW 7']},
{name: 'Column latch RCK', wave:'l.....pl.pl.pl.pl.pl.pl.pl.pl',},
{name: 'Row clock RCLK', wave:'l....pl.pl.pl.pl.pl.pl.pl.pl.',},
{name: 'Row reset RST', wave:'L...........................p'},
],
config: { hscale: 1 },
head:{text:'LED matrix timestep control',},
foot:{text:''},
}