Git Product home page Git Product logo

turpial-firmware's Introduction


Project Website | Code Documentation | Donate | Sponsor | Buy

Turpial Firmware

Welcome, and thank you for your visit. Here you can find the main firmware for the Turpial device, compatible with Locha Mesh and be aware of our development process.

About Locha Mesh

The Locha Mesh network is a secure radio network for off-grid messaging, Bitcoin and other cryptocurrencies transactions without access to the Internet. The main objective is a long range network for everyone and everywhere. For this reason, we are working not only in a protocol, but also in the firmware for affordable devices like our Turpial.

If you want to learn more about Locha Mesh, feel free to read the Locha Mesh main repository or take a look at our website locha.io.

Sponsor

If you want to support this project you can make a donation to the Locha Mesh effort to build private censorship-resistant mesh network devices for Bitcoin and other cryptocurrencies transactions without Internet.

Here are some places if you want to support us:

Supported ESP32 boards

Currently we use the ESP-WROVER-KIT development board to test the code and the radio module, although other ESP32 boards can be used as long as it fits on the flash memory. It should work on both the WROOM and WROVER chips without changes on the code.

The board connects over UART to the SimpleLink CC1312R radio module, the pinout is yet to be decided in the final complete board design.

Table of Contents

Turpial Firmware

About Locha Mesh

Sponsor

Supported ESP32 boards

License

Getting Started

Since this is an open source project you can contribute with your code and knowledge, or by making changes to the documentation. We invite and welcome all contributions. Below is a brief description on how to work with the code and to compile

  • ⚠️ The code is evolving each day, if something doesn't work when compiling please file and issue and we'll solve it.

Development Workflow

Development happens in the master branch. All Pull Requests should be pointed to that branch. Please, make sure you follow the CONTRIBUTING.md guidelines. All Pull Requests require that at least two developers review them first before merging.

Installing the toolchain

The firmware is based on RIOT-OS, it's a real-time multi-threading operating system that supports a range of devices that are typically found in the Internet of Things (IoT): 8-bit, 16-bit and 32-bit microcontrollers.

We use it for the CC1312 and ESP32 microcontrollers.

Currently only it is only compatible with Linux, we highly recommend you to use Debian based distributions, although the compilation process might work for on other distributions, if it doesn't works, please file an issue on this repository, or provide a pull request, be perpared to touch some files. For Mac OS you can search for alternatives like docker, or install all the necessary tools to build the firmware.

First, you need to install the ESP32 toolchain to build the firmware, not to be confused to the one provided by Espressif (ESP-IDF). Please follow this guide to install the necessary tools on your Linux system.

To install the development tools for building the CC1312 firmware you will need to follow this guide, see especially the Flashing and debugging section on the guide.

You have to install the ARM-GCC toolchain to build the CC1312 firmware, follow this guide to install the toolchain for your operating system.

Clone this repository

git clone https://github.com/btcven/turpial-firmware.git

Compiling

  1. Enter the firmware directory:

    cd turpial-firmware
  2. Initialize and update the submodules:

    git submodule update --init --recursive
  3. Build the mesh firmware (for the CC1312):

    make -C mesh BOARD=<your_radio_board>

    Where your_radio_board is the board you are using, for example, the CC1312 LaunchPad provided by Texas Instruments, is cc1312-launchpad. For example:

    make -C mesh BOARD=cc1312-launchpad
  4. Build the wifi firmware (for the ESP32):

    make -C wifi BOARD=<your_wifi_board>

    Where <your_wifi_board> is the board you are using, for a generic ESP32 WROOM board, use esp32-wroom-32.

    For example:

    make -C wifi BOARD=esp32-wroom-32

Flashing the firmware

To upload the binary to the ESP32 you have connected to your computer, you need to use the following command:

make -C wifi flash PORT=/dev/ttyUSB0

Where PORT specifies on what port you have connected your ESP32 development board.

To upload the binary to the CC1312, you need to use the following command:

make -C mesh flash PROGRAMMER=uniflash

If you have installed TI version of OpenOCD, use PROGRAMMER=openocd.

See also btcven/ti-bootloader, to flash the firmware onto the CC1312 using the serial port only. And not through JTAG.

License

Copyright 2021 btcven and Locha Mesh developers

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Read the full text:

Apache License 2.0

turpial-firmware's People

Contributors

antomabu avatar gustavosinbandera1 avatar jeandudey avatar luisan00 avatar rdymac avatar stephien avatar xkevin190 avatar xmrhaelan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

turpial-firmware's Issues

Generate self signed certificates on demand.

The sys admin. needs to be able to generate a self signed certificate on demand.
This can be a new component named crypto, security, or something similar but also can be part of components/Util

Functions of this components are:

  • Generate a new certificate for to be used with HTTPD_SSL server.
  • Store a certificate
  • Read a previously stored certificate.

Other crypto functions can be added, sha256 generation of Node ID NID, etc

Migrate to CMake

Currently we're using Platform IO, to build and test the code. It's slow to build the code and uses an old ESP-IDF version.

Create a Minimum Viable Product

It should do the following at a minimum:

  1. Access-Point
    1.1 Start Access-Point
    1.2 Configure Access-Point
    1.3 Start and Stop Access-Point
  2. Interface with the Mobile Application Locha Mesh Application.
    2.2 At least implement the websockets interface without any logic or a simple echo.

Errors in Travis-CI configuration

Extracting /home/travis/.espressif/dist/openocd-esp32-linux64-0.10.0-esp32-20191114.tar.gz to /home/travis/.espressif/tools/openocd-esp32/v0.10.0-esp32-20191114
Installing Python environment and packages
ERROR: This script was called from a virtual environment, can not create a virtual environment again
The command "./install.sh" failed and exited with 1 during .
Your build has been stopped.

Migrate to ESP-IDF v4

We need to adapt the code to use the new ESP-IDF version 4, and move from v3 to it.

The code under the libs/ directory needs to be adapted to use the new version of the framework:

  • BLE
  • BLEPreferences
  • NVS
  • Network
  • Radio
  • Task
  • Util
  • WS

Depends on #63.

Broken hyperlink on turpial-firmware github page

Describe the bug
On https://github.com/btcven/turpial-firmware when you click on the hyperlink for "CONTRIBUTING.md", it goes to a a 404 page

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'https://github.com/btcven/turpial-firmware'
  2. Scroll down to Development Workflow
  3. Click on "CONTRIBUTING.md"
  4. See error at link destination https://github.com/btcven/turpial-firmware/blob/master/blob/master/CONTRIBUTING.md

Expected behavior
Anything would be better than a 404 page

Screenshots
Screenshot from 2020-03-06 10-42-14

Desktop (please complete the following information):

  • OS: Ubuntu 16.04
  • Browser: Firefox
  • Version: 73.0.1 (64-bit)

Additional context
Awesome project. I want to help.

Remove warnings from code.

Describe the bug

There are some warnings in the code that can be removed easily.

To Reproduce

ìdf.py build

Expected behavior

No warnings

Additional context

Warnings
../components/Util/src/Base64.cpp:29:13: warning: 'void util::a4_to_a3(uint8_t*, uint8_t*)' defined but not used [-Wunused-function]
 static void a4_to_a3(std::uint8_t* a3, std::uint8_t* a4)
             ^~~~~~~~
[916/936] Building CXX object esp-idf/Network/CMakeFiles/__idf_Network.dir/src/WiFi.cpp.obj
../components/Network/src/WiFi.cpp: In member function 'esp_err_t network::WiFi::start()':
../components/Network/src/WiFi.cpp:152:10: warning: unused variable 'is_sta' [-Wunused-variable]
     bool is_sta = isSta();
          ^~~~~~
../components/Network/src/WiFi.cpp: In member function 'esp_err_t network::WiFi::stop()':
../components/Network/src/WiFi.cpp:191:10: warning: unused variable 'is_sta' [-Wunused-variable]
     bool is_sta = isSta();
          ^~~~~~
[924/936] Building CXX object esp-idf/HMI/CMakeFiles/__idf_HMI.dir/src/HumanInterface.cpp.obj
../components/HMI/src/HumanInterface.cpp:18:21: warning: 'hmi::gpio_evt_queue' defined but not used [-Wunused-variable]
 static xQueueHandle gpio_evt_queue = nullptr;
                     ^~~~~~~~~~~~~~
[925/936] Building CXX object esp-idf/HMI/CMakeFiles/__idf_HMI.dir/src/UserButton.cpp.obj
../components/HMI/src/UserButton.cpp: In function 'void hmi::interruptIsrHandler(void*)':
../components/HMI/src/UserButton.cpp:12:17: warning: unused variable 'button' [-Wunused-variable]
     gpio_num_t* button = static_cast(arg);
                 ^~~~~~
../components/HMI/src/UserButton.cpp: In member function 'void hmi::UserButton::init(gpio_num_t, bool, hmi::callbackFunction, hmi::callbackFunction, hmi::callbackFunction)':
../components/HMI/src/UserButton.cpp:47:16: warning: unused variable 'USER_BUTTON' [-Wunused-variable]
     gpio_num_t USER_BUTTON = btn->_gpio_btn;
                ^~~~~~~~~~~
In file included from ../components/HMI/src/UserButton.h:4,
                 from ../components/HMI/src/UserButton.cpp:1:
../components/HMI/src/HumanInterface.h: At global scope:
../components/HMI/src/HumanInterface.h:38:3: warning: 'hmi::state' defined but not used [-Wunused-variable]
 } state;
   ^~~~~
[928/936] Building CXX object esp-idf/HMI/CMakeFiles/__idf_HMI.dir/src/UserButtonHandler.cpp.obj
../components/HMI/src/UserButtonHandler.cpp:13:20: warning: 'TAG' defined but not used [-Wunused-variable]
 static const char* TAG = "USER-BUTTON-HANDLER";
                    ^~~
[930/936] Building CXX object esp-idf/main/CMakeFiles/__idf_main.dir/main.cpp.obj
In file included from ../components/HMI/src/UserButton.h:4,
                 from ../main/main.cpp:29:
../components/HMI/src/HumanInterface.h:38:3: warning: 'hmi::state' defined but not used [-Wunused-variable]
 } state;

Don't use BLE

Some time ago we decided to use BLE as an administration interface, but BLE can brings some red flags regarding privacy.

Why?

For the admin interface, using BLE on Android phones, you need to enable permissions regarding the location. We believe this can trigger privacy issues and for this the admin interface must be moved to the secure web server.

For reference

missing fields inside DTOConfig struct

Describe the bug
trying to use the WiFi class to test the functionality, I saw DTOConfig struct inside wifiDTO.h file need to be added a new two fields to configure "WST" workstation mode, I mean {WST_SSID} and {WST_PASSWORD},

Radio communication.

Description

The device should be able to connect to other nodes. Send packets, and route packets between nodes.

Radio

Currently we use the CC1312 radio MCU to communicate with other nodes, this radio communicates with the ESP32 using UART. As of today, the pins used are defined in the defaults.h file, however these aren't the pins we'll be going to use for the finished Turpial board and are there just for development purposes.

Radio UART Protocol

We need to research and implement a new protocol to communicate with both MCUs, the way to send packets to the network, figure out how to request a route and such things.

Radio Routing

To route packets over the network we'll be using AODV over IPv6.

Update license heading for all source files.

We currently use the Apache-2.0 license, and it requires to have on each source file a reference to the license in use, in our case Apache-2.0.

/**
 * Copyright 2020 btcven and Locha Mesh developers
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @{
 *
 * @file
 * @brief         ************ mandatory code
 *
 * @author        Nicolás Maduro <[email protected]>
 * @}
 */

This is an example of how each file should have their license and the respective documentation comment containing the @file which should be blank, author and a brief description of what the file does. Ideally the author is the one who created the code so when someone modifies it one can know immediately who wrote it and who to ask in case of the need to understand something.

Disable C++ exceptions

Describe the bug

C++ exceptions makes the compiler to emit run-time code for that increasing the binary size.

  • After #113 is merged, we need to look through all the code where we might be using exceptions, and remove them.
  • Remove option from sdkconfig.defaults (or set it to n).

Expected behavior

Small binary 😉

Fix warnings in the code.

Describe the bug

Current warnings that show up
../components/Util/src/Base64.cpp:29:13: warning: 'void util::a4_to_a3(uint8_t*, uint8_t*)' defined but not used [-Wunused-function]
 static void a4_to_a3(std::uint8_t* a3, std::uint8_t* a4)
             ^~~~~~~~
[1171/1199] Building CXX object esp-idf/Network/CMakeFiles/__idf_Network.dir/src/WiFi.cpp.obj
In file included from ../components/Network/src/WiFiEventHandler.h:18,
                 from ../components/Network/src/WiFi.h:22,
                 from ../components/Network/src/WiFi.cpp:12:
/home/jeandudey/Dev/esp-idf/components/esp_event/include/esp_event_loop.h:2:2: warning: #warning "esp_event_loop.h is deprecated, please include esp_event.h instead" [-Wcpp]
 #warning "esp_event_loop.h is deprecated, please include esp_event.h instead"
  ^~~~~~~
../components/Network/src/WiFi.cpp: In member function 'esp_err_t network::WiFi::init()':
../components/Network/src/WiFi.cpp:113:24: warning: 'void tcpip_adapter_init()' is deprecated [-Wdeprecated-declarations]
     tcpip_adapter_init();
                        ^
In file included from /home/jeandudey/Dev/esp-idf/components/esp_netif/include/esp_netif.h:35,
                 from /home/jeandudey/Dev/esp-idf/components/esp_event/include/esp_event_legacy.h:22,
                 from /home/jeandudey/Dev/esp-idf/components/esp_event/include/esp_event.h:26,
                 from ../components/Network/src/WiFi.h:18,
                 from ../components/Network/src/WiFi.cpp:12:
/home/jeandudey/Dev/esp-idf/components/tcpip_adapter/include/tcpip_adapter.h:34:6: note: declared here
 void tcpip_adapter_init(void)  __attribute__ ((deprecated));
      ^~~~~~~~~~~~~~~~~~
../components/Network/src/WiFi.cpp:113:24: warning: 'void tcpip_adapter_init()' is deprecated [-Wdeprecated-declarations]
     tcpip_adapter_init();
                        ^
In file included from /home/jeandudey/Dev/esp-idf/components/esp_netif/include/esp_netif.h:35,
                 from /home/jeandudey/Dev/esp-idf/components/esp_event/include/esp_event_legacy.h:22,
                 from /home/jeandudey/Dev/esp-idf/components/esp_event/include/esp_event.h:26,
                 from ../components/Network/src/WiFi.h:18,
                 from ../components/Network/src/WiFi.cpp:12:
/home/jeandudey/Dev/esp-idf/components/tcpip_adapter/include/tcpip_adapter.h:34:6: note: declared here
 void tcpip_adapter_init(void)  __attribute__ ((deprecated));
      ^~~~~~~~~~~~~~~~~~
../components/Network/src/WiFi.cpp:117:50: warning: 'esp_err_t esp_event_loop_init(system_event_cb_t, void*)' is deprecated [-Wdeprecated-declarations]
     esp_event_loop_init(&WiFi::eventHandler, this);
                                                  ^
In file included from /home/jeandudey/Dev/esp-idf/components/esp_event/include/esp_event.h:26,
                 from ../components/Network/src/WiFi.h:18,
                 from ../components/Network/src/WiFi.cpp:12:
/home/jeandudey/Dev/esp-idf/components/esp_event/include/esp_event_legacy.h:227:11: note: declared here
 esp_err_t esp_event_loop_init(system_event_cb_t cb, void *ctx) __attribute__ ((deprecated));
           ^~~~~~~~~~~~~~~~~~~
../components/Network/src/WiFi.cpp:117:50: warning: 'esp_err_t esp_event_loop_init(system_event_cb_t, void*)' is deprecated [-Wdeprecated-declarations]
     esp_event_loop_init(&WiFi::eventHandler, this);
                                                  ^
In file included from /home/jeandudey/Dev/esp-idf/components/esp_event/include/esp_event.h:26,
                 from ../components/Network/src/WiFi.h:18,
                 from ../components/Network/src/WiFi.cpp:12:
/home/jeandudey/Dev/esp-idf/components/esp_event/include/esp_event_legacy.h:227:11: note: declared here
 esp_err_t esp_event_loop_init(system_event_cb_t cb, void *ctx) __attribute__ ((deprecated));
           ^~~~~~~~~~~~~~~~~~~
[1173/1199] Building CXX object esp-idf/Network/CMakeFiles/__idf_Network.dir/src/WiFiEventHandler.cpp.obj
In file included from ../components/Network/src/WiFiEventHandler.h:18,
                 from ../components/Network/src/WiFiEventHandler.cpp:1:
/home/jeandudey/Dev/esp-idf/components/esp_event/include/esp_event_loop.h:2:2: warning: #warning "esp_event_loop.h is deprecated, please include esp_event.h instead" [-Wcpp]
 #warning "esp_event_loop.h is deprecated, please include esp_event.h instead"
  ^~~~~~~
[1185/1199] Building CXX object esp-idf/BLEPreferences/CMakeFiles/__idf_BLEPreferences.dir/src/BLEPreferences.cpp.obj
In file included from ../components/Network/src/WiFiEventHandler.h:18,
                 from ../components/Network/src/WiFi.h:22,
                 from ../components/BLEPreferences/src/BLEPreferences.cpp:19:
/home/jeandudey/Dev/esp-idf/components/esp_event/include/esp_event_loop.h:2:2: warning: #warning "esp_event_loop.h is deprecated, please include esp_event.h instead" [-Wcpp]
 #warning "esp_event_loop.h is deprecated, please include esp_event.h instead"
  ^~~~~~~
[1191/1199] Building CXX object esp-idf/WS/CMakeFiles/__idf_WS.dir/src/HttpRequest.cpp.obj
In file included from ../components/WS/src/HttpRequest.cpp:44:
../components/Util/src/Base64.h:40:20: warning: 'std::size_t util::base64EncodedLength(const string&)' defined but not used [-Wunused-function]
 static std::size_t base64EncodedLength(const std::string& in)
                    ^~~~~~~~~~~~~~~~~~~
[1194/1199] Building CXX object esp-idf/main/CMakeFiles/__idf_main.dir/main.cpp.obj
In file included from ../components/Network/src/WiFiEventHandler.h:18,
                 from ../components/Network/src/WiFi.h:22,
                 from ../main/main.cpp:23:
/home/jeandudey/Dev/esp-idf/components/esp_event/include/esp_event_loop.h:2:2: warning: #warning "esp_event_loop.h is deprecated, please include esp_event.h instead" [-Wcpp]
 #warning "esp_event_loop.h is deprecated, please include esp_event.h instead"
  ^~~~~~~

To Reproduce

  1. Compile the source code

Expected behavior

  1. No warnings

Desktop (please complete the following information):

  • OS: Ubuntu 18.04

compilation issue

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

    1. git clone [email protected]:btcven/turpial-firmware.git
  • 2 cd turpial-firmware
  • 3 git submodule init
  • 4 git submodule update
    make

Expected behavior

When I did compile the project I got this error

gustavosinbandera1@gustavosinbandera1-HP-Laptop-17-bs0xx:~/TEXAS/turpial-firmware$ make 
Building application "radio-firmware" for "cc1312-launchpad" with MCU "cc26x2_cc13x2".

/home/gustavosinbandera1/TEXAS/turpial-firmware/main.c: In function 'board_config_cmd':
/home/gustavosinbandera1/TEXAS/turpial-firmware/main.c:200:5: error: implicit declaration of function 'print_board_config' [-Werror=implicit-function-declaration]
     print_board_config();
     ^~~~~~~~~~~~~~~~~~
/home/gustavosinbandera1/TEXAS/turpial-firmware/main.c:198:33: error: unused parameter 'argc' [-Werror=unused-parameter]
 static int board_config_cmd(int argc, char **argv)
                                 ^~~~
/home/gustavosinbandera1/TEXAS/turpial-firmware/main.c:198:46: error: unused parameter 'argv' [-Werror=unused-parameter]
 static int board_config_cmd(int argc, char **argv)
                                              ^~~~
cc1: all warnings being treated as errors
make[1]: *** [/home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/Makefile.base:108: /home/gustavosinbandera1/TEXAS/turpial-firmware/bin/cc1312-launchpad/application_radio-firmware/main.o] Error 1
make: *** [/home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/Makefile.include:568: /home/gustavosinbandera1/TEXAS/turpial-firmware/bin/cc1312-launchpad/application_radio-firmware.a] Error 2
From https://github.com/btcven/RIOT
 * branch                14312a82bccdc0dddff9a7aee13c59261b80e4c4 -> FETCH_HEAD
Submodule path 'RIOT': checked out '14312a82bccdc0dddff9a7aee13c59261b80e4c4'

the above issues are for both master and dev branch
issue

Compilation error

Describe the bug
I have cloned the repo and all looks ok, when I execute `make BOARD=esp32-wrover-kit`` or whatever other esp32 platform, I amgetting this output

"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/boards/esp32-wrover-kit
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/boards/common/esp32
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/core
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp32
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp32/freertos
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp32/periph
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp32/vendor
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp32/vendor/esp-idf
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp32/vendor/esp-idf/driver
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp32/vendor/esp-idf/esp32
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp32/vendor/esp-idf/heap
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp32/vendor/esp-idf/nvs_flash
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp32/vendor/esp-idf/soc
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp32/vendor/esp-idf/spi_flash
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp32/vendor/esp-idf/wpa_supplicant
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp32/vendor/esp-idf/wpa_supplicant/port
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp32/vendor/esp-idf/wpa_supplicant/src/crypto
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp_common
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp_common/esp-now
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp_common/freertos
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp_common/periph
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp_common/vendor
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/cpu/esp_common/vendor/xtensa
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/drivers
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/drivers/mtd
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/drivers/periph_common
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/drivers/slipdev
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/auto_init
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/div
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/event
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/evtimer
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/fmt
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/isrpipe
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/log
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/luid
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/application_layer/gcoap
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/application_layer/nanocoap
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/crosslayer/inet_csum
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/crosslayer/netopt
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/netapi
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/netif
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/netif/hdr
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/netif/init_devs
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/netreg
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/network_layer/icmpv6
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/network_layer/icmpv6/echo
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/network_layer/ipv6
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/network_layer/ipv6/hdr
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/network_layer/ipv6/nib
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/network_layer/ndp
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/network_layer/sixlowpan
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/network_layer/sixlowpan/ctx
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/network_layer/sixlowpan/frag
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/network_layer/sixlowpan/frag/fb
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/network_layer/sixlowpan/frag/rb
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/network_layer/sixlowpan/iphc
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/network_layer/sixlowpan/nd
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/pkt
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/pktbuf
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/pktbuf_static
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/pktdump
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/sock
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/sock/udp
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/gnrc/transport_layer/udp
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/link_layer/l2util
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/netif
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/network_layer/icmpv6
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/network_layer/ipv6/addr
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/network_layer/ipv6/hdr
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/network_layer/sixlowpan
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/sock
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/sock/async/event
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/net/transport_layer/udp
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/newlib_syscalls_default
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/od
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/pm_layered
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/posix/inet
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/posix/pthread
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/ps
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/random
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/random/tinymt32
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/shell
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/shell/commands
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/stdio_uart
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/timex
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/tsrb
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/RIOT/sys/xtimer
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/sys
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/sys/cjson
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/sys/net
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/sys/net/coap
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/sys/net/vaina
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/sys/storage
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/sys/storage/nvs
"make" -C /home/gustavosinbandera1/TEXAS/turpial-firmware/sys/storage/settings

/turpial-firmware/bin/esp32-wrover-kit/esp_wifi_ap.a: No such file or directory
make: ***

RIOT module master branch

  • OS: Ubuntu 18.04
  • turpial firmware dev and master branch

Cannot flash turpial-firmware onto Launchpad

Trying to put together a DIY setup, and I was told by Luis that he thinks the Turpial repo must compile the firmware for my two boards (launchpad+ESP32) and to try it out.

I was able to clone and compile okay, but when I try and flash it as stated here:
https://github.com/btcven/turpial-firmware#flashing-the-firmware

I get this error message:
'Compiler xtensa-esp32-elf-gcc is required but not found in PATH. Aborting.'

Does this mean the launchpad doesn't need the turpial-firmware, and I should just move onto flashing the ESP32 board with the turpial-firmware?

I was able to build and flash the radio-firmware onto the launchpad okay FYI

Implement HTTP Authentication

We need to authenticate HTTP requests, so only the administrator can change the configuration.

What we need:

  • Endpoint to change user/pass (/system/credentials probable URI).
    • Store the credentials on NVS.
  • Wait for espressif/esp-idf#4823 to get merged (HTTP authentication).
  • Use basic authentication (for now).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.