Pops-O-Matic ESP Programmer: Difference between revisions

From doityourselfchristmas.com
Jump to navigation Jump to search
 
(62 intermediate revisions by the same user not shown)
Line 10: Line 10:
[https://www.allaboutcircuits.com/projects/flashing-the-ESP-01-firmware-to-SDK-v2.0.0-is-easier-now/ ESP Flashing Circuit]<br>
[https://www.allaboutcircuits.com/projects/flashing-the-ESP-01-firmware-to-SDK-v2.0.0-is-easier-now/ ESP Flashing Circuit]<br>
This programming board supplies both the regulated power and the programming interface for the ESP-01 module.<br>
This programming board supplies both the regulated power and the programming interface for the ESP-01 module.<br>
It specifically isolates the ESP-01 from any of the positive power that may be supplied by your serial-to-TTL programmer.<br>
'''''It specifically isolates the ESP-01 from any of the positive power that may be supplied by your serial-to-TTL programmer.'''''<br>
Only Ground, Transmit, and Receive are connected from the external serial-to-TTL programmer to the Pops-O-Matic.<br>
Only Ground, Transmit, and Receive are connected from the external serial-to-TTL programmer to the Pops-O-Matic. (with the assumption you hook it up properly)<br>
The purpose of this is twofold.  <br>
The purpose of this is twofold.  <br>
1.  To protect the ESP-01 module from voltages over 3.3V. <br>
1.  To protect the ESP-01 module from voltages over 3.3V. (Many TTL programmers are normally run at 5V)<br>
2.  To provide the ESP-01 with well regulated and steady power during the programming sequence.<br><br>
2.  To provide the ESP-01 with well regulated and steady power during the programming sequence.<br><br>


Line 19: Line 19:
   
   
The Pop-O-Matic is designed to be flexible in assembly and use.<br>
The Pop-O-Matic is designed to be flexible in assembly and use.<br>
It can take a wide variation of power input voltages (5V-25V) and can support up to 5 different power connections.<br>
It can take a wide variation of power input voltages (5V-16V) and can support up to 5 different power connections.<br>
The board is designed to use any of the following for a power input connection:<br>
The board is designed to use any of the following for a power input connection types:<br>
1. 5mm Terminal Block<br>
1. 5mm Terminal Block<br>
2. 3.5mm Terminal Block<br>
2. 3.5mm Terminal Block<br>
Line 26: Line 26:
4. Mini USB<br>
4. Mini USB<br>
5. Barrel Terminal Jack<br><br>
5. Barrel Terminal Jack<br><br>
The board has a power ON/OFF switch with a power ON LED indicator.
The board has a power ON/OFF switch with a power ON LED indicator.<br><br>
NOTE: <br>
Input power should be at least 400ma.


== Order a boards ==
== Order a board ==
Contact ukewarrior via a PM on DIYC as he often has boards in stock, cheap !
Contact ukewarrior via a PM on DIYC as he often has boards in stock, cheap !
== Fuses ==
There is no onboard fuse for the ESPixel Pops.
</p><p>
You can add an inline fuse if desired with the '''input power feed'''.
</p><p>
This can be done very inexpensively with a fuse holder and fuse.<br>
These are available for a total of 32 cents from Tayda Electronics.<br>
Here are the links to those products as of late 2017:<br>
[http://www.taydaelectronics.com/in-line-fuse-holder-for-m205-5x20mm-fuses.html Fuse Holder]<br>
[http://www.taydaelectronics.com/fuse-glass-fast-acting-5a-5x20.html 5A Fuse]<br>
[[File:Purgeme.jpg]] [[Image:glass fuse.jpg|middle|Version V2]]


== Disclaimers ==
== Disclaimers ==


'''USE the ESPixel Pops board at Your Own Risk !'''</p>
'''USE the Pops-O-Matic board at Your Own Risk !'''<br>
'''The ESPixel Pops board has NO warranty expressed or implied'''
'''The Pops-O-Matic board has NO warranty expressed or implied'''
<p>


== BOM - Bill of Materials ==  
== BOM - Bill of Materials ==  


The BOM contains these generically described parts:


- One ESP8266-01, this is not so much a part, but a complete subassembly.<br>
The BOM contains these generically described partsThe '''SKU at TAYDA electronics''' (www.taydaelectronics.com) is listed as a reference example following the silkscreen part identifier.  <br>
- '''D1''' - One diodeThis must be: 1N4148<br>
A typical total for these parts is about $3-$4 not including the ESP-01 module and the TTL converter.<br>
- '''ESP-01''' - One female socket header, 2 rows of pins, 4 pins in each row.  This functions as the socket where you plug the ESP8266 module into<br>
Parts U1 & ESP-01 are not sold by TAYDA.
- One six pin header.  Readily available 2.54mm (.1") pitch. (distance between the pins)<br>
- One tactile switch.  6mm x 6mm. Also readily available. These often have choices as to the height of the push button.<br>
- '''R1 & R2''' - Two 1/8W or 1/4W carbon film or metal film resistors.  330 Ohms.<br>
- '''C2''' - One polarized Electrolytic capacitor.  Any value from 10uF to 220uF will do. 10V or above. Pay special attention to the diameter and spacing of the leads. The diameter can be no more than 5mm and the leads should be spaced at 2mm.<br>
- '''C1''' - One MLCC monolithic capacitor. 2.54mm lead spacing.  0.1uF, any voltage over 24V. (Usually these are 50V rated) These are typically the 'yellow blob' style capacitors, verses the ones that are shaped like a flat disk.  These do NOT have a + & - indication, unlike the electrolitic capacitor noted above.<br>
- '''U1''' - One 3.3v voltage regulator. This must be: LD1117V33, which has a TO-220 style package.<br>
- '''IC1''' - One 5.0v voltage regulator.  This part is optional and should only be installed if you are planning to drive 12v pixels.<br>
- '''Q1''' - One MosfetThis must be: 2N7000 or ZVN3306A, which has a T0-92-3 style package<br>
- A five pin screw terminal header.  5 positions total.  This connection should have '''3.81mm spacing''' of the mounting pins.<br>
<br>
The ESPixel Pops Tiny board has the same BOM but you '''omit''':<br>
- '''D1''' - One diode. This must be: 1N4148<br>
- One tactile switch.  6mm x 6mm.<br>
- One six pin header.  Readily available 2.54mm (.1") pitch.


'''One of the DIYC members, beeiilll, constructed BOMs for three vendors.'''<br> They are contained in the thread:
- '''Input Connectors  A-662''' - As noted earlier, you have choices for the power input connector.  You can populate the board with all the connectors at the same time. The exception to this is that the 3.5mm and 5mm terminal blocks share the same space on the board.<br>
[http://doityourselfchristmas.com/forums/showthread.php?47269-Espixel-by-Bill-Porter/page27&highlight=espixel  Click Here:]
Of course, you can populate it with any combination that suits your fancy, including none at all.<br>
 
The possible input connectors are: SMD micro USB, through hole mini USB, Terminal Barrel, 3.5mm & 5mm Terminal block.<br>
Within that thread, you can find the BOMs in these posts:<br>
- '''S3 A-2001''' - Power Switch. SPDT ON-OFF-ON  This part is optional.  You can short the middle and left holes together to set the board to permanently ON.  This SPDT switch has 5mm pin spacing. Most any style will do, both slide and toggle for example.<br>
The BOM's are:<br>  
- '''D1  A-484''' - Diode, specifically 1N5819<br>
 
- '''C1  A-214''' - MLCC, ceramic Capacitor. 50v, 0.1uF, 2.54mm or 5mm lead spacing.<br>
Mouser BOM is in Post #35<br>
- '''C2  A-4506''' - Electrolytic Capacitor. 10V, 220uF, 2mm lead spacing, 6mm max diameter.<br>
Arrow BOM is in Post #48<br>
- '''C3  A-319''' - MLCC, ceramic Capacitor. 50v, 0.33uF, 2.54mm or 5mm lead spacing.<br>
Digikey BOM is in Post #49
- '''C4  A-4552''' - Electrolytic Capacitor. 25V, 1000uF, 5mm lead spacing, 13mm max diameter.<br>
- '''C5  A-214''' - MLCC, ceramic Capacitor. 50v, 0.1uF, 2.54mm or 5mm lead spacing.<br>
- '''C6  A-4534''' - Electrolytic Capacitor. 25V, 10uF, 2mm lead spacing, 6mm max diameter.<br>
- '''POWER  A-1554''' - LED, 5mm, any color.<br>
- '''R1  A-2203''' - 1/4W carbon or metal film resistor. 10K ohm.<br>
- '''R2  A-2203''' - 1/4W carbon or metal film resistor. 10K ohm.<br>
- '''R3  A-2203''' - 1/4W carbon or metal film resistor. 10K ohm.<br>
- '''R4  A-2282''' - 1/4W carbon or metal film resistor. 560 ohm.Note: this resistor is paired with the POWER LED. You should use one of the online calculators to determine the most optimal value given a 3.3V input power to your LED.<br>
- '''100R''' - There is a resistor labeled 100R to the right of the power switch.  It is not needed.<br>
- '''U1''' - Voltage Regulator, 3.3V, specifically LM2937ET-3.3, TO-220 package.<br>
- '''S1  A-5143''' - Tactile Switch. 6x6mm through hole.<br>
- '''S2  A-5143''' - Tactile Switch. 6x6mm through hole.<br>
- '''ESP01  A-1682''' - 2x4 femaie pin header.  2.54mm spacing.<br>
- '''ESP01''' - ESP-01 module.  This is not actually part of the Pops-O-Matic.  It is the board the Pops-O-Matic will help you program.<br>
- '''USB to TTL  A-1384''' - A 6 pin header.  Either vertical or 90 degree mounting.  Male or Female to match the pins on your USB-to-TTL Converter.<br><br>
- '''USB to TTL converter  A-1991''' - This is not actually part of the Pops-O-Matic board, but you will need one if you don't already have one.<br>  The two most popular models are known as the FT232RL and CP2102. <br> The FT232RL by FTDI was the defacto-standard until they released a code version that would brick peoples PC's in an effort to combat Chinese clones. <br> This angered a lot of the '''Maker''' community.  The CP2102 then arose as a competitor to FTDI.<br>  Both of these programmers are available all over the internet, ebay and aliexpress. <br> You can also order one off of TAYDA as noted.<br>


== Construction Information ==
== Construction Information ==
This board is pretty simple.  Just follow typical assembly practices.<br>
Solder from lowest to the board to tallest components last.<br>
Hopefully, you can find some of the parts in your electronics junk drawer stash.<br>
The only reason for five possible power inputs is to match up with whatever is easiest for you use from a power input source.<br>
For example, the usb connections exist to support your typical cell phone charger or any other USB power source.  (which is always 5V).<br>
Or you may have an old power brick that has a round terminal barrel connector.  <br><br>
The voltage values of the referenced capacitors can be changed.  You can always use a higher voltage capacitor in place of the noted voltage.<br>
Additionally, you may be able to use a lower voltage than what is noted. <br>
i.e.  C3 and C4 are on the power input side of the voltage regulator. <br> If you know FOR SURE that you will never use a voltage over 5V for an input, then these capacitors can be any value above 7.5V and will be just fine.  But, if you forget and apply 12V, the caps will let out their magic smoke.<br>
Likewise, capacitors C1, C5 and C6 are after the voltage regulator and will never see a voltage above 3.3V.  Therefore, any voltage rating above 5V should be safe.<br><br>
All this to say is that you can often find a lot of the parts you need for a low voltage board like this in your stash or salvage from other boards.<br><br>


== Errata ==
The ESPixel Pops is a pretty easy build.  The real trick is deciding how you plan to power your pixels as that will affect what you do with the board wiring.<br>
[[Image:Popsomatic_back.jpg|right|small]]
 
The initial board run has one small error.<br><br>
Depending on your power source, this determines if you should install the 5V regulator or just put a jumper in its place as noted on the the board.
'''This error has been fixed with the ver 1.1 board.''' (This version number is noted on the back of the board)<br><br>
There is an unwanted trace on the back of the board that connects the right most pin '''(as viewed from the TOP) '''of part C5 to the ground backplane that covers the bottom of the board.<br>
This unwanted trace should have been placed on the left most pin of C5.  <br>
All boards sent out, have had this unwanted trace scraped off the board. <br>
So, the end user doesn't need to do anything to fix this error.<br><br>


The board has a main voltage regulator that provides 3.3V of power to run the ESP8266 module. <br> This module does not care if you are running 5V or 12V pixels.  So, you can connect 5V or 12V to the board.
Due to this error, the capacitor for C5 must be mounted using the middle and right most holes onlyThe left most hole is not connected to anything.<br>
 
'''This restriction has been removed with the ver1.1 board'''
The board has a place for a second voltage regulatorThis is to accommodate 12V pixels.
<br>  
This is location IC1 on the board.  This is a spot for either a 5V regulator or a wire jumper.<br>
<br>
<br>
'''To summarize the population of the voltage regulators and ICs:'''<br>
This may cause a problem if your C5 capacitor has 5mm spaced leadsIn this case, you would either bend the leads to fit the more narrow spacing,<br>
The pard labeled: U1 is always installed.<br>
or you can insert the left most pin through the hole and then bend if over to connect to the middle hole.<br>
The part labeled: Q1 is always installed.<br>
In other words, part C5 must have pins touching the middle and right holesAgain, all references are from the top view of the board.
The part labeled: IC1 is installed if you are running 12V Pixel strings<br>
The part labeled: IC1 is NOT installed if you are running 5V Pixel strings AND you must place a jumper in its place as noted on the board.<br><br>
 
Click Here to see the schematic:
 
== Wiring The ESPixel Pops ==
[[Image:Pixel_pops_tiny_built_by_Steven_Dill.jpg|right|small]]
[[Image:Pixel_pops_tiny_with_radio_built_by_Steven_Dill.jpg|right|small]]
 
'''A Key Point Regarding Power'''<br>
The power supply you use must match the voltage requirement of your pixels.<br>
So, if you run 5V pixels, you must have a 5V PSSame is true for 12V pixels.<br>
If you accidentally use a 12V power supply on 5V pixels, you will damage your pixels, perhaps to the extent of destroying the entire string.
 
 
 
Along the bottom of the board are 5 connection points. (as viewed from the top...)<br>
The two on the left are for input power.<br>
The three on the right are for pixel connection.<br>
 
You can either solder on a terminal block or directly solder your wires to the board, or do a mix !<br>
The Terminal block has 3.81mm hole spacing. (The more common 5mm terminal blocks would have made the board too wide)<br>
 
One thing you have to decide is if you will power your pixels through the ESPixel Stick or directly to the Pixel string. (sometimes referenced as "power injection")<br>
It is possible to use the ESPixel Pops as an interface for just the data and run power to the pixels separately.<br>
This is a decision of personal preference and the fact the PCB traces can only handle so much power.<br>
Trial and error is your best approach.<br>
 
== Programming the ESP-01 Module ==
 
The heart and soul of the pixel stick variants is the firmware that runs on the the ESP-01 module.
Work has been done to consolidate to one common set of code.
 
Shelby Merrick is the keeper (and key cook & bottle washer) of this code.
He keeps the current release of code on his github page.
You can find that here: [https://github.com/forkineye/ESPixelStick/releases Pixel Stick Software]
 
As of 10/30/2017, the current release was version: '''3.0'''
 
For Shelby's v3.0 release, there is a Java Flash Tool that you run, enter your SSID and PSK for your wireless network, Pixel, the correct COM port and Upload.
 
'''Here is a posting by PCpackrat that describes his experience: NOTE:  the most current info is at the github webpage noted below...'''<br><br>
this can also be found at this DIYC posting #122 in this thread: [http://doityourselfchristmas.com/forums/showthread.php?40311-ESPixel-GECE-Info-Thread  Info Thread]
 
''The firmware is here: https://github.com/forkineye/ESPixelStick
 
Read through the README.md dont skim like I did. There is a part (gulp) that requires java to 'zip' up the web site information. I just did that part in linux and then copied the files into the data/www folder in the ESPixelStick folder.
 
Install the prerequisites in README.md
 
Pay careful attention to the Arduino for ESP8288 version (2.40-rc1). You will have to choose this branch for download.
 
My short and dirty TL;DR and things I missed:
 
Modify ssid and passphrase at the top of ESPixelStick.ino
 
Under Tools:
Choose your board as Generic ESP8266 Module
Flash Size should be 1M (128K SPIFFS)
CPU Frequency 160 MHz
Upload Speed 115200
 
Power the unit with the button pressed
 
Upload the firmware
 
Remove power from the unit and replug again with the button pressed.
 
Go to Tools and then ESP8266 Sketch data upload (serial monitor has to be closed for this)


== Pictures of built Pops-O-Matic boards ==


''
Tyson Howard's build:
[[File:Pixelpops.jpg]]
[[File:Pixelpops2.jpg]]


== Pictures of built Pixel Pops boards ==
Pops original build:
user '''kev''' in California uses Snapple bottles to build a water resistant enclosure for 5 cents
[[File:purgeme3.jpg]]
[[File:Pixelpops_enclosure.jpg]]
[[File:purgeme1.jpg]]
<br><br>
Steven Dill uses a Pixel Pops Tiny board enclosed in 1" thin wall PCV to control the coro star on a mega tree.
[[File:Pops_tiny_star.jpg]]
[[File:Pops_tiny_star2.jpg]]

Latest revision as of 22:03, 15 April 2020

Version V2


What is the Pops-O-Matic ESP Programmer ?

The Pops-O-Matic is a dedicated programming board for the popular ESP-01 module.
This board was inspired from two articles on allaboutcircuits.com. Specifically:
Voltage Regulator
ESP Flashing Circuit
This programming board supplies both the regulated power and the programming interface for the ESP-01 module.
It specifically isolates the ESP-01 from any of the positive power that may be supplied by your serial-to-TTL programmer.
Only Ground, Transmit, and Receive are connected from the external serial-to-TTL programmer to the Pops-O-Matic. (with the assumption you hook it up properly)
The purpose of this is twofold.
1. To protect the ESP-01 module from voltages over 3.3V. (Many TTL programmers are normally run at 5V)
2. To provide the ESP-01 with well regulated and steady power during the programming sequence.

Pops-O-Matic Overview

The Pop-O-Matic is designed to be flexible in assembly and use.
It can take a wide variation of power input voltages (5V-16V) and can support up to 5 different power connections.
The board is designed to use any of the following for a power input connection types:
1. 5mm Terminal Block
2. 3.5mm Terminal Block
3. Micro USB
4. Mini USB
5. Barrel Terminal Jack

The board has a power ON/OFF switch with a power ON LED indicator.

NOTE:
Input power should be at least 400ma.

Order a board

Contact ukewarrior via a PM on DIYC as he often has boards in stock, cheap !

Disclaimers

USE the Pops-O-Matic board at Your Own Risk !
The Pops-O-Matic board has NO warranty expressed or implied

BOM - Bill of Materials

The BOM contains these generically described parts. The SKU at TAYDA electronics (www.taydaelectronics.com) is listed as a reference example following the silkscreen part identifier.
A typical total for these parts is about $3-$4 not including the ESP-01 module and the TTL converter.
Parts U1 & ESP-01 are not sold by TAYDA.

- Input Connectors A-662 - As noted earlier, you have choices for the power input connector. You can populate the board with all the connectors at the same time. The exception to this is that the 3.5mm and 5mm terminal blocks share the same space on the board.
Of course, you can populate it with any combination that suits your fancy, including none at all.
The possible input connectors are: SMD micro USB, through hole mini USB, Terminal Barrel, 3.5mm & 5mm Terminal block.
- S3 A-2001 - Power Switch. SPDT ON-OFF-ON This part is optional. You can short the middle and left holes together to set the board to permanently ON. This SPDT switch has 5mm pin spacing. Most any style will do, both slide and toggle for example.
- D1 A-484 - Diode, specifically 1N5819
- C1 A-214 - MLCC, ceramic Capacitor. 50v, 0.1uF, 2.54mm or 5mm lead spacing.
- C2 A-4506 - Electrolytic Capacitor. 10V, 220uF, 2mm lead spacing, 6mm max diameter.
- C3 A-319 - MLCC, ceramic Capacitor. 50v, 0.33uF, 2.54mm or 5mm lead spacing.
- C4 A-4552 - Electrolytic Capacitor. 25V, 1000uF, 5mm lead spacing, 13mm max diameter.
- C5 A-214 - MLCC, ceramic Capacitor. 50v, 0.1uF, 2.54mm or 5mm lead spacing.
- C6 A-4534 - Electrolytic Capacitor. 25V, 10uF, 2mm lead spacing, 6mm max diameter.
- POWER A-1554 - LED, 5mm, any color.
- R1 A-2203 - 1/4W carbon or metal film resistor. 10K ohm.
- R2 A-2203 - 1/4W carbon or metal film resistor. 10K ohm.
- R3 A-2203 - 1/4W carbon or metal film resistor. 10K ohm.
- R4 A-2282 - 1/4W carbon or metal film resistor. 560 ohm.Note: this resistor is paired with the POWER LED. You should use one of the online calculators to determine the most optimal value given a 3.3V input power to your LED.
- 100R - There is a resistor labeled 100R to the right of the power switch. It is not needed.
- U1 - Voltage Regulator, 3.3V, specifically LM2937ET-3.3, TO-220 package.
- S1 A-5143 - Tactile Switch. 6x6mm through hole.
- S2 A-5143 - Tactile Switch. 6x6mm through hole.
- ESP01 A-1682 - 2x4 femaie pin header. 2.54mm spacing.
- ESP01 - ESP-01 module. This is not actually part of the Pops-O-Matic. It is the board the Pops-O-Matic will help you program.
- USB to TTL A-1384 - A 6 pin header. Either vertical or 90 degree mounting. Male or Female to match the pins on your USB-to-TTL Converter.

- USB to TTL converter A-1991 - This is not actually part of the Pops-O-Matic board, but you will need one if you don't already have one.
The two most popular models are known as the FT232RL and CP2102.
The FT232RL by FTDI was the defacto-standard until they released a code version that would brick peoples PC's in an effort to combat Chinese clones.
This angered a lot of the Maker community. The CP2102 then arose as a competitor to FTDI.
Both of these programmers are available all over the internet, ebay and aliexpress.
You can also order one off of TAYDA as noted.

Construction Information

This board is pretty simple. Just follow typical assembly practices.
Solder from lowest to the board to tallest components last.
Hopefully, you can find some of the parts in your electronics junk drawer stash.
The only reason for five possible power inputs is to match up with whatever is easiest for you use from a power input source.
For example, the usb connections exist to support your typical cell phone charger or any other USB power source. (which is always 5V).
Or you may have an old power brick that has a round terminal barrel connector.

The voltage values of the referenced capacitors can be changed. You can always use a higher voltage capacitor in place of the noted voltage.
Additionally, you may be able to use a lower voltage than what is noted.
i.e. C3 and C4 are on the power input side of the voltage regulator.
If you know FOR SURE that you will never use a voltage over 5V for an input, then these capacitors can be any value above 7.5V and will be just fine. But, if you forget and apply 12V, the caps will let out their magic smoke.
Likewise, capacitors C1, C5 and C6 are after the voltage regulator and will never see a voltage above 3.3V. Therefore, any voltage rating above 5V should be safe.

All this to say is that you can often find a lot of the parts you need for a low voltage board like this in your stash or salvage from other boards.

Errata

small
small

The initial board run has one small error.

This error has been fixed with the ver 1.1 board. (This version number is noted on the back of the board)

There is an unwanted trace on the back of the board that connects the right most pin (as viewed from the TOP) of part C5 to the ground backplane that covers the bottom of the board.
This unwanted trace should have been placed on the left most pin of C5.
All boards sent out, have had this unwanted trace scraped off the board.
So, the end user doesn't need to do anything to fix this error.

Due to this error, the capacitor for C5 must be mounted using the middle and right most holes only. The left most hole is not connected to anything.
This restriction has been removed with the ver1.1 board
This may cause a problem if your C5 capacitor has 5mm spaced leads. In this case, you would either bend the leads to fit the more narrow spacing,
or you can insert the left most pin through the hole and then bend if over to connect to the middle hole.
In other words, part C5 must have pins touching the middle and right holes. Again, all references are from the top view of the board.

Pictures of built Pops-O-Matic boards

Tyson Howard's build:

Pops original build: