Monthly Archives:February 2021

Mini-Meditation-Lamp

13 Feb 21
volker
No Comments

A friend of mine builds Bascetta stars as a christmas decoration. This link gives you an idea what I am talking about: http://www.mathematische-basteleien.de/bascetta_stern.htm

Us together came the idea that a light source within the stars would look even better than the stars themselfes.

Since I like to play around with electronics, I developed a little circuit consisting of a little programmable controller and 3 LEDs. The PCB for it is quite small and fits easily into those stars. Almost all people who saw them wanted to have them and we indeed sold some of them.

I designed a little PCB (thanksto DesignSpark, great tool, guys)

Finally it looks like this:

 

I thought to myself that those stars are basically meant as Christmas decoration and not for the rest of the year. So I came up with the idea to create a mobile with different illuminated bodies (not only a Bascetta star). I googled and found out that some very interesting bodies are the so called Platonic solids=> https://en.wikipedia.org/wiki/Platonic_solid

I found a german company (Herrmann Lehrmittel) => http://www.herrmann-lehrmittel.de selling those solids as demonstration/illustration for students.

In order to be able to place my little PCB into those solids, I needed to get them in a way that I could assemble them myself.  Gluing them together surely is a very tricky thing so the best would be to get them as half shells. I wrote an e-mail to the company and the owner answered me directly. In a telephone call he told me that he also had the idea to bring some light into his solids. He even had talks with his supplier of the plastic granulate to try out some opaque. Mr. Herrmann then was extremely friendly and sent me some samples for free to check out how it could work with my LEDs.

Before I really assemble the half shells finally, I will do some tests like putting the shells together by some adhesive tape. I made a video to give you an impression how the first prototype looks like. It is not a beauty and just a proof of concept.

Click here to see the video

 

ESP8266 with Matrix Display

12 Feb 21
volker
No Comments

Some day I stumbled about 8×8 Matrix LEDs with an SPI interface. While I started with a single 8×8 Matrix for little test purposes, I found out that there are also quite cheap displays with 4 arranged displays offering 32×8 pixel. I combined 2 of them to implement a little clock, driven by the internet (via time server ntp).

The driver was a ESP8266. I created an extra little controller board to attach the esp directly to the LED. This worked out well.

Some day I developed the idea to couple the esp8266 very closely to the matrix display to create little nifty devices.

Phase one: Find out how are the 8×8 matrix modules addressed by the gadgets you can buy?

It turns out: MAX7219 ist the answer. One application for this chip is to drive 7 segment displays with 8 digits. By nature of the 8×8 LED Matrix modules you can buy, you can also use the chip to address a single 8×8 Matrix module. The MAX7219 can be chained. that way several 8×8 modules can be packed together.

The internet is full of schematics how to couple the 7219 with the LED matrix.

As said before the interface to the 7219 from the controler side is SPI and also quite simple.

The overall schematics for the little device ended up to be:

The schematics consist of a voltage regulator to transform 5V (most likely provided by an USB interface) to the 3.3V the ESP8266 likes. The regulator is a AMS1117 (3.3V).

The ESP got a programming interface J1 (details in the previous post). For the connection to the matrix SPI is used (CS, MOSI, CLK) MISO we do not need since the 7219 does not hand back anything to the ESP8266.

A little detail: As Matrix Modules “Common Cathode” ones are required.Do not ask me why they are called common Cathode since the anodes are also connected, so also common.

R2 seems to determine the current that drives the LEDs. The internet told me that 10k would be a good value. I tried and it works with red and blue matrixes. The brightness of the LEDs is handles via PWM by the 7219 anyway.

R3 and R4 and pullups for the programming adapter and I also chose 10k. R1 I found in a few schematics on the internet it is a pulldown for the chip select. In fact it did not seem to be necessary so on the pcb I usually do not solder any resistor to it.

To be able to maybe attach some extra “things” to the module I added a few additional ports (J4 could be used as I2C ) when 3.3V and GND istaked from J5. J6,J7J8 are just “extensions to the esp pins, since for a a through hole connector I just did not have enough space on the PCB.

J3 is the incoming Power supply. It does not necessarily have to be 5V since the LED Matrix also works with less voltage (e.g. 3.3V), but the primary use case is to have it attached to USB.

An option will be to drive the thing via LiPo. The AMS1117 is not the best choice here since it it not a good LDO regulator, but it will work.

J2 is an output connector that could be used to attach cascaded Matrix modules.

Although the schematic looks extremely simple, the tricky part was the size of the board. It must not be bigger than the dimensions of the LED Matrix itself.

So the layout required to be my fist 4 layer layout.

I started with burried viasuntil I found out that JLCPCB does not support that. Vias are always though. This complicated the design a bit.

The PCB came delivered and looks like this:

You can seeone pin of the ESP8266 is a bit longer. It is the analog pin. I should be able to solder directly to it if possible. As described before IO16 and IO12 are also not through holes for reasons of space. I should also be able to solder directly to then only on this side without a though hole.

When soldering the components to the board I alsway start to solder the ESP8266 part. Somehow getting MAX7219 Chips is harder than ESP8266. So if I screw something up in the ESP8266 area, I did not waste a MAX7219.

Voltage Reg and the pullups for Reset, Flash and the MAX7219 Current control are soldered.

Next time I will use the KiCad “Hand Solder Pads”for the 1206 pads. they are definitely better to solder.

Her majesty, the ESP8266 residing on the other side of the PCB. On top of it, the 2.54 Header for the programming cable.

After having done a test programming, the MAX7219 as soldered.

The Matrix LEDs will be plugged in to the one row sockets above and below the MAX7219.

 

The final result looks like this:

The one row socket connectors are optional. A replacement of the LED Matrix will not be possible so easily if necessary of course.

Very compact design.

 

Programmer / Serial Interface for ESP8266 and ESP32

12 Feb 21
volker
No Comments

On the Market you can find an incredible amount of boards with ESP chips on them made for Makers.

Using those boards in a Dev environment is easy because you can simply plug them into your breadboard and use the on board USB to directly program them via Arduino or PlatformIO.

When you leave the Breadboard Area and start projects where the ESPs are built into some case and you intend to reprogram the ESPs while in the case, it is very hards to design the case in a way so you can reach the USB of the ESP Board.

So I intended to split the functionality of programming and the actual ESP processor into 2 boads. Programming shall be easy to build into a case and the ESP also shall be able to end up wherever suitable in the case.

I had a look at the various USB to TTL solutions on the marked and did not find a single one fitting my needs because they ALL lack the necessary UART pins.

How to program a ESP?

Basically it is very simple: Pull the GPIO0 to LOW and reset the chip via a short Low on the Reset (EN) pin. After that, the chip is able to be programmed via TX/RX.

How to control the GPIO0 and Reset Pins. A look into the documentation of PlatformIO, they use the UART signals RTS/DTR for that. RTS is for Reset and DTR for “Flash”.

And exactly those signals are missing in the most UART adapters.

So I  designed my ESP boards in a way to have Reset and GPIO0 pulled up to +3.3Volts, and have RTS and DTR pulling them to low in the right sequence.

This is basically what the most ESP Prototype boards do. They usually have an additional logic (2 transistors) built in there because most of them also have pushbuttons to reset or flash the ESP. In my case I do not need that, so the simple pullup solution will do.

The next question to solve was: Which USB to UART converterchip to use? The defacto standard is the FTDI232 Chip. I tried it and I got it working, but it has a lot of pins and the TSSOP package has quite minimal distances between the pins (not easy to solder by hand).

A great alternative ar the CH3X0 chips. I used CH330N for projects not requiring DTR/RTS, just RX/TX. For DTRand RTS I switched to CH340C.

I directly went for 3.3V supply to the UART since ESPs like 3.3V. The 3.3V is generated by an AMS1117 for 3.3V.

Usign KiCAD leads to the folloging PCB

Get it manufactured by JLCPCB and you end up with this PCB in your Hands.

R1 by the way is an optional Resistor to couple Ground against the shielding of the USB. The internet was not clear how to handle shielding the USB. Some connect ot to ground, others don’t