Your new topic does not fit any of the above??? Check first. Then post here. Thanks.

Moderator: igrr

User avatar
By shoelessone
#34883 First, thanks for taking the time to write such a thoughtful response forlotto, I appreciate it! Responses are inline below :)

forlotto wrote:Not to be too critical of your work but it appears that the soldering work could be checked over a bit. Are you holding the pin low to program the flash.


Trust me, you are not wrong about my soldering work! As I mentioned I'd never soldered 0805 components before this board, and I found it (find it!) challenging to say the least! Especially for me .1uF and 10uF caps, which have tiny tiny little solder pads.

That said, I'm getting better I think, and the second board I put together (while still crap!) was a lot better than the first.

I'm using .032" rosin-core solder, although I also have .015" solder, but I've found the .032" actually to be a bit easier to work with.. not sure if it's because there is more "flux" in it, or what.

And yes, for the time being I'm holding GPIO15 to low while I program, and holding GPIO15 to low when I boot in "normal" mode, and also holding GPIO2 to high when I boot. Which is a pain. But next rev i'll add some pull up/pull down resistors.

forlotto wrote:Provide details of what you are doing. What you are using for programming hardware/software/firmware etc...


Well, I posted this in the Arduino forum so it may not be a huge surprise to learn that I'm using the Arduino IDE to flash the board. I'm using the latest "stable" arduino board library, the board I have selected is the "Generic ESP8266 Module", and the programmer (which apparently doesn't matter) I have selected is "Arduino as ISP" (I think this was the default, I don't think I actually set anything here).

As for software, I have everything in github, and it can be seen here: https://github.com/develpr/mitchine (and before anybody comments, I'm 100% aware and OK with the fact that I have the boards wep key committed in plain text. I'll even tell you that I don't plan on changing it, so feel free to come over and hack my esp configuration :)).

As for details of what I'm doing: I have my board hooked up to an FTDI adapter. I have RX/TX/VCC/GND hooked up. RESET and CH_PD are on pull up resistors (4.7k aka 4k7!). Before I plug the thing in, I ground GPIO15. Then I plug the thing in. I think after boot I can remove the GPIO15->GND connection, but I don't, I just click the program button and let it do it's thing.

forlotto wrote:To be honest you may want to consider using a nodemcu by the time you figure in the cost of the board, cost of the time, etc not to mention the ability to have access to all GPIO's etc and easily programmable.


Well, to be honest I don't fully understand how using nodemcu itself is going to fix some of these problems. Do I not still need to have a similar setup in terms of pull up/pull downs on GPIO15/GPIO2?

Regardless, my impression so far is that nodemcu is not quite as stable as the arduino code. It's a bit "higher level." Frankly, if anything I'd go the other direction, and use pure C or whatever to flash the thing, and write everything in C.

At the end of the day, you're probably right about the fact that there are easier ways to do this. For example, I could have just used test boards that I already actually own, instead of building my own PCB. But a BIG part of the reason I'm doing this is for the learning experience. I think it's fun, and it's a skill that I am happy to be building towards.

I'm still a complete newb who has done a lot of really stupid things, but I've also learned a TON along the way. I started this project not even really knowing what an ESP8266 was, nothing NOTHING about how to program one, knowing really nothing about what a "pull up" or "pull down" was (something I still don't fully understand... but closer :)).

At the end of the day, despite the frustration I feel from time to time (often!) I went this route because it was a good mix of "easy" and "the result will look nice with a simple, single PCB" and "you'll learn a lot of new stuff".

Anyway, for now, I'm going to keep going in this direction. I'd even go so far as to say that it's this way, or no way. If I can't overcome whatever problems I"m having with the board design/soldering newbness/issues with software... well, I won't let that happen :).



Also, a small update/something strange I've experienced:

I was having a hell of a time flashing a working version of my code onto my custom board, so I switched over to using a test board that I KNEW worked because I had done it before. I was still having issues! And I've kept everything under source control so I'm fairly certain nothing changed in my code.

All of this was on my rMPBP (mac).

So I went back to my windows 10 machine because I remembered that i had most recently been using that to flash. I'm about 99% sure I have the same version of the arduino/esp8266 board in the board manager. And again, I have the same exact software under source control. But when I used this computer to flash, everything worked fine!

To be clear, I was able to successfully flash with my mac, and the board would start up and broadcast an SSID/network. But as soon as I tried to connect to it, there was an exception/error/whatever, and the board would crash. When I used the windows 10 computer with what I believe to be the same software, I was able to connect/configure my board/etc.

Any thoughts or opinions on this? Is this something common, or something perhaps being caused by "bad power" from my macbook pro vs the windows 10 laptop? I really have no idea what might be causing it... For now, I have a solution ("use the windows 10 comptuer to flash"), but I really don't like not knowing what hte cause of my issue would be... I'm paranoid I edited some of the arduino board related code or something that I DONT have under source contorl, and then forgot about it, or something.
User avatar
By forlotto
#34934 Excellent no your soldering work is not bad it is actually good for an iron...

For work like that I use flux and a hot air station which to be honest I have not done a heck of a lot of I have a real fine tip on my iron so I can do that type of soldering as well but I shake like a leaf on a tree doing small stuff but I manage the impossible takes longer.

I just wanted to be sure because we had another user here that swore his soldering was perfect until he took a picture of it and you could see exactly where the solder wasn't touching the pad bingo he was off to the races ...

As far as mac I'm not so sure what the issue is have you looked into potential bugs with mac vs windows ?

I have not been a mac guy since the 33mhz preforma 637cd... But yeah it could be something to do with mac all signs point in that direction or possibly one little setting or something simple that is throwing you off com issues etc if I knew more about mac I would help you troubleshoot personally .

Your project sounds cool I would like to see it in video form working when finished as a personal request I guess I was just trying to convince you to use a nodemcu because it is just an esp8266 just like the one you have more or less... People get confused buy the name nodemcu but it is just an esp8266 on a development board and you can program it and use it in the same manner the only difference is things are already broken out for you to use no need to have a specialized board it even works with arduino.

Nodemcu has buttons to press down to do the job the guy to talk to would be mmiscool he thanked me big time for sending one to him he said it helped speed up his dev time exceptionally if I recall correctly he said he can just program on the fly nice and easy no issues ... think of all the time you spend on your board etc... I really can't tell you everything it is something you need to see for yourself I guess I would be willing to bet after you have one you will likely order more to follow. For a few bucks what have you got to lose one less take out meal or don't the choice is entirely your own. esp8266 basic is based off of arduino code more or less even with your code you can address pins by what it says on the nodemcu it is built into the programming I believe Igrr or something to that nature the guy who is responsible for a lot of the dev work with the esp and arduino made a post about it this makes life easier when addressing pins in code etc. There are numerous benefits to this thing but people don't see them until they physically have one I am not sponsored to say this it is just me trying to help you out more or less. dunno what else to say on this. I think your board is cool too by all means if thats your route take it. How about this you give it a try buy one and if you don't find any advantages I will buy it off you? Give you 8.00 including shipping so it is no loss for you... I could always use an extra one.

As I said though I am interested what you have seems cool I'd like to see it in action when finished.
User avatar
By shoelessone
#34964 Ok, so a quick follow up/questions:

1. I increased ALL traces to 24mil - is there any problem with this? I also increased the clearances from 8mil to 10mil, just to be safe. I realize I only had to increase the VCC routes to 24 mil, but it was easy just to change the entire board to use 24mil traces.. is that OK? Again, I also increased the clearances between everything to 10mil.

2. I follow this: http://www.forward.com.au/pfod/ESP8266/ ... index.html - specifically the part "Using GPIO0, GPIO2 and GPIO15 as Outputs" - as you can see in my schematic below. Does this seem reasonable?

3. Here is a big Q for me, something from my testing: to start the board, after programming it, I have been manually (with a wire) connecting GPIO15 to GND and GPIO2 to VCC directly before I turn on power. As long as I hold these wires there (5 seconds, 10 seconds, 30 seconds, etc) the blue "status light" on the esp-12e doesn't come on. But as soon as I remove the wires, the blue light comes on and stays on. I am wondering why? Does it matter? In my design you can see that I'm connecting a pull up/down resistor for those pins, and they will be connected at all times. Is that going to cause problems for me? I.e. whatever is causing the blue light to NOT turn on for me when I connect directly to VCC/GND (not through a resistor in my testing fwiw), will the same thing happen with my pcb design? And if so, does it matter?



Here is the new board design:
Image

And here is the new layout:
Image


Thanks for any input/feedback/thoughts! (am I missing any other pullup/pulldown resistors? :))