diff --git a/BOARDS.md b/BOARDS.md index 8e2ede9..5f03219 100644 --- a/BOARDS.md +++ b/BOARDS.md @@ -4,15 +4,113 @@ Boards with ESP-Link This readme provides instructions for PCBs that I've made that are designed for esp-link. Some of the instructions may be helpful to others as well. -Installing esptool.py ---------------------- +esp-bridge +---------- + +The esp-bridge has an esp-03 modulde, an FTDI connector (with wrong pinout!), a 3-pin power +and debug connector, and two buttons. +Next to the buttons it is marked "TvE2015 esp-ftdi". +It comes preloaded with the latest version of esp-link. + +Power: the on-board MCP1825S-33 regulator can provide 500mA and is good from about 3.6v to 6v. +Connect power either to the 3-pin connector (gnd in center, 5v towards the esp module), or to +the FTDI connector (GND marked, next to the buttons, 5V 3rd pin). + +On power-up you should see the green LED on for ~1 second (the yellow should go on too, but +the firmware may not be configured correctly). After that it should blink according to the +patterns described in the README's LED indicators section. Follow the Wifi configuration details +section thereafter. + +Reflashing the esp-bridge serially: you should not need to do this, use the over-the-air +reflashing by running `make wiflash`. If you do need to reflash serially, connect TX of a +USB BUB to RX of the esp-bridge and RX to TX (i.e. cross-over). Hold the flash button down +and briefly press the rest button. Then run esptool.py.as described below. (Note that a USB-BUB +will not generally power the esp-03, you need to feed 5v separately.) + +To connect a JeeNode to the esp-bridge to flash it or debug it, plug it into the FTDI +port flipped-over, i.e. the component side of the JeeNode will be on the bottom and the +components of the esp-bridge will be on the top. (Yes, the FTDI port should have been reversed +on the esp-bridge...) + +To program the JeeNode, having set-up the Wifi through the web pages, run avrdude with an +option like "-Pnet:esp8266:23" (you can use an IP address instead of `esp8266`). My test command +line is as follows: +``` +/home/arduino/arduino-1.0.5/hardware/tools/avrdude \ + -C /home/arduino/arduino-1.0.5/hardware/tools/avrdude.conf -DV -patmega328p \ + -Pnet:esp8266:23 -carduino -b115200 -U flash:w:greenhouse.hex:i +``` +If you're using "edam's Arduino makefile" then you can simply set `SERIALDEV=net:bbb:2000` in your +sketch's Makefile. + +jn-esp +------- + +The jn-esp has an esp-03 module, an LPC824, a pseudo-FTDI connector (marked in tiny letters) +and a JeePort (also marked). On the bottom it is marked "JN-ESP-V2". +It comes preloaded with the latest version of esp-link. + +Power: the on-board MCP1825S-33 regulator can provide 500mA and is good from about 3.6v to 6v. +Connect power either to the FTDI connector (GND and 5V marked on bottom) or to the +JeePort (GND next to "reg-out" jumper and 5V marked P on bottom). + +To program the LPC824 point the Embello uploader at port 23. Something like: +``` +uploader -w -t -s 192.168.0.92:23 build/firmware.bin +``` +Remove the -s option if you don't want to stay connected. A simple sketch to try this out +with is the [hello sketch](https://github.com/jeelabs/embello/tree/master/projects/jnp/hello). +The result should look something like: +``` +$ uploader -w -t -s jn-esp:23 build/firmware.bin +found: 8242 - LPC824: 32 KB flash, 8 KB RAM, TSSOP20 +hwuid: 16500407679C61AE7189A053830200F5 +flash: 0640 done, 1540 bytes +entering terminal mode, press to quit: + + +[hello] +500 +1000 +1500 +2000 +2500 +... +``` + +The pseudo-ftdi connector has the following pin-out: + - 1: GND (marked on bottom) + - 2: LPC824 P17/A9 + - 3: 5V (marked on bottom) + - 4: LPC824 P11/SDA + - 5: LPC824 P10/SCL + - 6: LCP824 P23/A3/C4 + +If you need to serially reflash the jnp-esp there are SMD pads for an FTDI connector on the +bottom below the esp-03 module. GND is marked. The best is to solder a right-angle +connector to it such that the pins point up (i.e. to the component side). You can then +hook-up a USB-BUB. I recommend jumpering the flash pin (next to GND) to GND and you need to +hook the reste pin (6) to the USB-BUB's DTR (should happen automatically). RX&TX also go +straight through). Note that your USB-BUB will not be able to power the esp-03, you will +need to feed 5v separately. + +Serial flashing +--------------- + +Once you have a version of esp-link flashed to your module or if you received a pre-flashed +module from me you should not need this section. But sometimes things fail badly and your +module is "brocked", this is how you receover. + +### Installing esptool.py On Linux I am using [esptool.py](https://github.com/themadinventor/esptool) to flash the esp8266. If you're a little python challenged (like I am) then the following install instructions might help: - - Install ez_setup with the following two commands (I believe this will do something reasonable if you already have it): + - Install ez_setup with the following two commands (I believe this will do something + reasonable if you already have it): wget https://bootstrap.pypa.io/ez_setup.py python ez_setup.py + - Install esptool.py: git clone https://github.com/themadinventor/esptool.git @@ -21,23 +119,17 @@ If you're a little python challenged (like I am) then the following install inst cd .. esptool.py -h -Flashing esp-link ------------------ +### Flashing esp-link -Using esptool.py an esp-link release can be flashed as follows: +Using esptool.py a esp-link release can be flashed as follows: ``` -mkdir firmware +curl -L https://github.com/jeelabs/esp-link/releases/download/0.9.5/esp-link.tgz | tar xzf - cd firmware -wget https://github.com/jeelabs/esp-link/releases/download/0.9.3/blank.bin -wget https://github.com/jeelabs/esp-link/releases/download/0.9.3/boot_v1.3.b3.bin -wget https://github.com/jeelabs/esp-link/releases/download/0.9.3/user1.bin esptool.py write_flash 0x00000 boot_v1.3.b3.bi 0x1000 user1.bin 0x7e000 blank.bin ``` -(I see that I need to produce a tgz download...) - -esp-bridge ----------- - -The esp-bridge - - +If you want to speed things up a bit and if you need to specify the port you can use a command +line like: +``` +esptool.py --port /dev/ttyUSB0 --baud 460880 write_flash 0x00000 boot_v1.4\(b1\).bin \ + 0x1000 user1.bin 0x7e000 blank.bin +```