zmoteio / zmote-firmware

Firmware code and associated utilities for the zmote widget
MIT License
21 stars 6 forks source link

Build instruction? #1

Open 1500WK1500 opened 7 years ago

1500WK1500 commented 7 years ago

It would be nice if there would be a build instruction for this project. I saw that there is a reference in buildconfig.mk to a zmote-toolchain folder which is not in this repository. So it looks like it is not as easy to clone the repository and run make COMPILE=gcc BOOT=none APP=0 SPI_SPEED=40 SPI_MODE=QIO SPI_SIZE_MAP=1 for building the firmware. So an instruction would be very helpful.

harik-klar commented 7 years ago

Unfortunately, I don't think we are allowed to re-distribute the tool chain. You'll have to download it it yourself, place it where appropriate or change the paths accordingly. I got the build tools from here: https://drive.google.com/folderview?id=0BzWyTGWIwcYQendHbWlsNUZpX0E&usp=drive_web#list This also requires EspressIf SDK V1.5.4 which you'll find here https://espressif.com/en/support/download/sdks-demos

Once the paths are correctly set up, just plain "make" should build.

The zmote build flow is also tied to our server and deploy method. There are a few scripts under test/ that require auth token etc. to really work. You don't require those bits, of course, but what this means is you need to prepare for some additional steps to flash this on your own. Once you get the basic build up, let me know, and I'll try to pull together some flashing instructions.

1500WK1500 commented 7 years ago

Thank you for the quick response!

I am now able to compile the project with the build tools you provided. Unfortunately I have to change the strcasestr functions to strstr in rboot-ota.c and updatefs.c to get no undefined reference error during building the firmware.

make_output_with_strstr.txt make_output_with_strcasestr.txt

I also tried to flash the binaries to the ESP8266 with:

esptool.py --port COM12 --baud 1000000 write_flash --flash_mode qio --flash_size 32m 0x00000 0x00000.bin 0x02000 0x02000.bin 0x5B000 0x5B000.bin 0x82000 0x82000.bin 0xFC000 0xFC000.bin 0xFE000 0xFE000.bin

I can connect to the zmote_****\ accesspoint but if I enter zmote.io it doesn't load the webpage.

I use a NodeMCU board with a ESP-12E with 32Mbit flash. Is there something special to consider about the flashing?

harik-klar commented 7 years ago

If you are trying it with your phone, make sure you disable mobile data. If that is not a problem, then it means the file system was not built correctly. Since you are using nodemcu, you can build with "make BUILD=nodemcu" That will turn on the debug and you should be able to see messages @ 74880 baud using ESPlorer or other term. Hopefully that provides some hints. The other possibility is to ditch the file system altogether and simply connect to the zmote_*\ hotspot on your PC and use curl or Postman to configure AP credentials via the REST api:

$ curl -d '{"ssid":"your_ssid","pasword":"your_psk"}192.168.4.1/xx-yy-zz-pp-qq-rr/api/wifi/connect

1500WK1500 commented 7 years ago

I could solve the problem with the strcasestr function. I had to use xtensa-lx106-elf-141114 and not xtensa-lx106-elf-161014.

I have made a log of the debug output where I have done the following steps:

  1. Build the firmware with make BUILD=nodemcu
  2. Flash the firmware with:

    esptool.py --port COM12 --baud 1000000 write_flash --flash_mode qio --flash_size 32m 0x00000 0x00000.bin 0x02000 0x02000.bin 0x5B000 0x5B000.bin 0x82000 0x82000.bin 0xDB000 0xDB000.bin 0xFC000 0xFC000.bin 0xFE000 0xFE000.bin

  3. Connect my PC to the zmote_*\ hotspot and open zmote.io (website is not loading)
  4. Connect the zmote to my AP with:

    curl -X PUT -H 'Content-Type: application/json' -d '{"ssid":"my_ssid","password":"my_psk"}' http://192.168.4.1/xx-xx-xx-xx-xx-xx/api/wifi/connect

  5. Connect my PC to the same network and try again to open zmote.io (again website is not loading)
  6. I try to directly enter the IP of the zmote in my browser: It loads a page but it only contains only the text "Not Found."

serial_debug_output_log.txt

itsanov commented 7 years ago

I have managed to build it successfully:

Total filesystem size=272.4 KB occupies=280KB (70/108 sections) [Usage:64.8%, Wastage:2.8%]
File:firmware/0x5B000.bin Length:151552
File:firmware/0xDB000.bin Length:135168

But after uploading to ESP-01 it constantly reboots with following message:

ets Jan 8 2013,rst cause:1, boot mode:(3,4)

load 0x40100000, len 1152, room 16 tail 0 chksum 0x2e load 0x3ffe8000, len 1564, room 8 tail 4 chksum 0x94 csum 0x94

rBoot v1.2.1 (with RPS) rBoot: Error reading RPS flags, assuming zero by default rBoot: Checking ROM0 at 0x02000 ... rBoot: Booting ROM0, entry point 0x00037500 ...

\0x8c\0xe2\0x9c\0xe7I8\0x82\0x8c\0x1c\0xf2\0x13 !\0x0c\0x10\0x80\0xec\0x1cr\0x10\0x02\0x8c\0xe2\0x9c\0xe7\0xc98\0x82\0xec\0x1c\0xf2\0x13 !\0x0c\0x10\0x80\0x0c\0x1cr\0x18\0x02\0x8c\0xe2\0x9c\0xe7I8\0x82\0x0c\0x8e\0xf2\0x1b 1\0x0c\0x10\0x80l\0x1cr\0x10\0x02r\0x10\0x02\0x8e\0x13\0xc39l\0x80\0xc4\0x9e\0x13b\0x9f\0xe4\0x0c\0x10\0x82\0x8cbr\0xe3b\0xe4\0x04\0x19\0x0c\0x12\0x9c\0x03\0x92\0x9c\0x03\0x92\0x9c\0x04b\0x9c#\0x0c\0x10\0x0e\0xf2n\0xee\0x03\0xdf!\0x82n\0xe2\0x83\0xdc\0x00\0x0c`\0x00ll\0xe0\0x13\0x02\0x84\0xc3\0xec\0x8e\0x00\0x8c\0x1c\0x80l\0x1c\0x9c\0x0c\0x10\0x82l\0x1f\0xec\0x8c\0x1c\0x8e\0x8c\0x1f\0x92\0x0c\0x8e;\0x18\0x02\0x80\0x02n\0xfc\0x03\0xc4\0xce\0x92\0x9c\0xc4b\0x0c\0x10\0xe2\0xec\0x8e\0x84\0x0cb\0x80\0x04>\0x80\0x02\0x84\0xdc\0x92\0x9c\0xc4b\0x0c\0x10\0x82\0x0c\0x1c|l\0x1cr\0x10\0x02r\0x10\0x02`
itsanov commented 7 years ago

After flashing firmware to ESP-12 with 32Mbit flash I've got the same result as @1500WK1500 - a page with text "Not Found."

ghost commented 6 years ago

This thread has been dead for quite some time, but I was wondering if someone might be able to help me get past this issue. I'm seeing the same problem as @1500WK1500 and @itsanov in that it appears the file system is not getting set up properly.