Giter Club home page Giter Club logo

ambd_arduino's Introduction

Ameba Arduino SDK (ambd_arduino)

1. About dev & master branch

Branch Usage json links
master stable release https://github.com/ambiot/ambd_arduino/raw/master/Arduino_package/package_realtek_amebad_index.json
dev merge Pull Request & early release https://github.com/ambiot/ambd_arduino/raw/dev/Arduino_package/package_realtek_amebad_early_index.json

For all release information, please visit this link.


2. How to add Realtek Ameba Arduino package to Arduino IDE:

You can refer to this link to get started: http://www.amebaiot.com/ameba-arduino-getting-started/ , or follow the steps below.

  1. Add Ameba Arduino SDK link to Arduino IDE Additional Boards Manager

    Arduino IDE 1.6.5 and above versions support third party hardware so please make sure to use the latest Arduino IDE for better experience.

    Therefore, you need to add Ameba Arduino SDK link in

    "File" -> "Preferences" -> "Additional Boards Manager URLs:"

    Copy and paste the following link into the field and click "OK",

    https://github.com/ambiot/ambd_arduino/raw/master/Arduino_package/package_realtek_amebad_index.json

    We also suggest to enable "Show verbose output" options on "compilation" and "upload" in Preference for easier debugging.


  2. Install Ameba board in "Board Manager"

    Open "Tools" -> "Board" -> "Board Manager", wait for it to update additional hardware configurations, then type "ameba" in the search bar, you will see Realtek Ameba in the list.

    Press "Install" to start the installation.


  3. Select your Ameba model in "Tools" -> "Board" -> "AmebaD ARM (32-bits) Boards"

    Make sure you select the correct model for your board, otherwise your program might not work properly

    Now you are ready to develop and upload firmware onto Ameba.

    For more information, please refer to https://www.amebaiot.com/en/ameba-arduino-summary/


3. Contributing to Ameba

Please spend 5 mins to read the Coding Style and Contribution Guideline at here before you contribute.

ambd_arduino's People

Contributors

ambiot avatar aurical avatar codemee avatar cold63 avatar daphwl avatar designer2k2 avatar gloglas avatar hanksuu avatar happyme531 avatar huangyutse avatar kyderio avatar lewispg228 avatar louisguan avatar m-ichae-l avatar mazgch avatar michellethemaker avatar northstrix avatar pammyleong avatar per1234 avatar s10143806h avatar s1498n089 avatar sandeepmistry avatar xidameng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar

ambd_arduino's Issues

WiFi.status() bug

The current AmebaD core v3.1.2 has a bug that once WiFi is connected, WiFi.status() always reports WL_CONNECTED even if WiFi is lost.
There is no workaround yet for this WiFi.status() bug because of WiFi.RSSI() is still keeping the good value
Therefore, the auto-reconnect feature for WiFiMulti won't work, until this bug is fixed by Realtek.


This bug was originally denoted in Important Notes of WiFiManager_RTL8720 by @khoih-prog

GTimer 'timerid' parameter validation bug

Here is how GTimer.cpp functions currently validate the timerid parameter:

    if (timerid > GTIMER_MAX) {
        return;
    }

As timerid is used to index the timer_mapping[GTIMER_MAX]array, obviously the case timerid == GTIMER_MAX should be rejected. Hence the validation test should be

    if (timerid >= GTIMER_MAX) {
        return;
    }

Regards

Error using I2C

I was trying to use the sth20 sensor, and did not get any answer so i tried using the I2C scanner.

Loading the scanner for i2c devices displays a list of addresses. This is the code:

 #include <Wire.h>

 void setup() {
 Wire.begin();
 
 Serial.begin(9600);
 while (!Serial); 
 Serial.println("\nI2C Scanner");
 }
 
 void loop() {
 int nDevices = 0;

Serial.println("Scanning...");

 for (byte address = 1; address < 127; ++address) {

 Wire.beginTransmission(address);
 byte error = Wire.endTransmission();

  if (error == 0) {
  Serial.print("I2C device found at address 0x");
  if (address < 16) {
    Serial.print("0");
  }
  Serial.print(address, HEX);
  Serial.println("  !");

    ++nDevices;
    } else if (error == 4) {
    Serial.print("Unknown error at address 0x");
    if (address < 16) {
    Serial.print("0");
   }
   Serial.println(address, HEX);
   }
   }
   if (nDevices == 0) {
    Serial.println("No I2C devices found\n");
   } else {
    Serial.println("done\n");
   }
   delay(5000); 
   }

image

When I try to observe in the oscilloscope there is no signal, it just stays high (3.3v).

image

Had to update firmware before arduino sketch would work

When I first got started with this board, When I would upload my sketch it would not update. I had to follow this guide along with modifying their python script to use my RS232 USB. https://wiki.seeedstudio.com/Wio-Terminal-Network-Overview/

please add a way to update the firmware from the Arduino IDE like they have for burning the bootloader to the Atmel devices. it looks like there are firmware binaries in the tools directory, but no way to upload them from the arduino IDE, and i found no guide for how to update them other than from Seeedstudio

_rtl_sprintf: format not support!

I am using a simple sprintf in my code.

sprintf(path, "/input/post?node=%s&json={humidity:'%2.1f',temp: '%2.1f'}', 'apikey':%s}", cid, h, t, api_key);

what could be wrong here.?

Dependency libraries

1.I was using esp series like esp8266 to make some Iot server project. And so that i have the use of Async Servers whitch is a library of esp8266 but when i turn to rtl8720dn for the support of 5G wifi, there is no such lib for rtl8720dn(because the libs of esp8266 use some base APIs that rtl8720dn doesnt have) to more efficiently handle those net connections.

2.Are you going to support file systems like SPIFFS or LittleFS in esp8266. because it would be a good choice to have a easier to used file systems to store file or data for local storage.(because some users isn't able to have a internet service to process the datas whitch came from the IOT devices.)?

BW16 MQTT disconnect issue

Hi,
Has this SDK been tested MQTT for a long time ?
After testing, it is found that turning on Gtimer and regularly performing MQTT-publish will cause irregular disconnection.
This problem occurs even though Gtimer is turned off, but not as frequently.
Hope this part can be improved.

BLE HID keyboard client example

I am trying to get input from a bluetooth keyboard.
Scan and connect successed,get service look like ok, but can't read input value characteristics.
Here is my code.

#include "BLEDevice.h"
#include "BLEHIDClient.h"

#ifdef __cplusplus
extern "C" {
#endif

#include "simple_ble_client.h"
#include "profile_client.h"
#ifdef __cplusplus
}
#endif

T_SERVER_ID BLEHIDClient::_hidClientId=0;
void (*BLEHIDClient::_pDefaultCB)()=nullptr;

BLEHIDClient::BLEHIDClient(){

}

void BLEHIDClient::addClient(uint8_t max_link_num){
    client_init(1);
    _hidClientId=simp_ble_add_client(clientCallback,max_link_num);
    // client_register_general_client_cb(clientCallback);
}

void BLEHIDClient::enableNotify(uint8_t conn_id){
    simp_ble_client_set_v3_notify(conn_id,1);
}

uint8_t BLEHIDClient::discoveryHIDServices(uint8_t conn_id){
    return (client_by_uuid_srv_discovery(conn_id,_hidClientId,0x1812));
}

void BLEHIDClient::setDefaultCallback(void (*fCallback)()){
    _pDefaultCB=fCallback;
}

uint8_t BLEHIDClient::readHIDKeyboard(uint8_t conn_id){
    return (client_attr_read(conn_id,_hidClientId,0x2A22));
}

uint8_t BLEHIDClient::read2902(uint8_t conn_id){
    return (client_attr_read(conn_id,_hidClientId,0x2902));
}

T_APP_RESULT BLEHIDClient::clientCallback(T_CLIENT_ID client_id, uint8_t conn_id, void *p_data){
    T_APP_RESULT app_result = APP_RESULT_SUCCESS;
    _pDefaultCB();
    if(client_id==_hidClientId){
        T_SIMP_CLIENT_CB_DATA *p_simp_cb_data = (T_SIMP_CLIENT_CB_DATA *)p_data;
        switch(p_simp_cb_data->cb_type){
            case SIMP_CLIENT_CB_TYPE_READ_RESULT:{
                Serial.println("[1.cb_type] read");
                switch(p_simp_cb_data->cb_content.read_result.type){
                    case SIMP_READ_V1_READ:{
                        Serial.println("[2.cb_content] read");
                        Serial.print("cause ");
                        Serial.println(p_simp_cb_data->cb_content.read_result.cause);
                        Serial.print("data notify ");
                        Serial.println((int)p_simp_cb_data->cb_content.read_result.data.v3_notify_cccd);
                        Serial.print("data v4_indicate_cccd ");
                        Serial.println((int)p_simp_cb_data->cb_content.read_result.data.v4_indicate_cccd);
                        Serial.print("data v1_read size ");
                        Serial.println(p_simp_cb_data->cb_content.read_result.data.v1_read.value_size);
                        break;
                    }case SIMP_READ_V3_NOTIFY_CCCD:{
                        Serial.println("[2.cb_content] notify");
                        break;
                    }case SIMP_READ_V4_INDICATE_CCCD:{
                        Serial.println("[2.cb_content] indicate");
                        break;
                    }default:{
                        Serial.println("[2.cb_content] other");
                        break;
                    }
                }
                break;
            }
            case SIMP_CLIENT_CB_TYPE_NOTIF_IND_RESULT:{
                Serial.println("[1.cb_type] notify or indicate");
                break;
            }
            default:{
                Serial.println("[1.cb_type] other");
                break;
            }
        }
    }
    
    return app_result;

}

When I call readHIDKeyboard the value size in callback always 0.
DId I use the right api? And how to enable notification from host device?

Please give more infomation. Thx.

Wi-Fi scan results with BSSID of AP

Hi

Can I get the BSSID of the scanned APs?
I need to identify and connect to hidden Wi-Fi through the scanned hidden network.
I've tried to implement it myself, but the BSSID with the first byte equals 0x00 will lead to all zeros in consequent BSSID bytes.
Maybe some bugs in the precompiled binary object files?

I also notice there's a hardcoded limit of 64 scanned APs limit in the binaries, hope it will be available for configuration.

Thanks

OTA Updates

Is there a way to do Over-The-Air (OTA) updates using WiFi?

g_APinDescription[ulPin].ulPinMode not updated after first call to pinMode(pin, mode)

in wiring_digital.c line 93,

g_APinDescription[ulPin].ulPinMode = ulMode;

this line is wrapped in the if NOT_INITIAL so this only gets updated on the first call to pinMode.

example

pinmode(PA30, OUTPUT); //g_APinDescription[ulPin].ulPinMode value updated. pin is configured
pinmode(PA30, INPUT); //g_APinDescription[ulPin].ulPinMode value NOT updated. pin is configured
pinmode(PA30, OUTPUT); //g_APinDescription[ulPin].ulPinMode value NOT updated. pin is NOT configured, pinMode function is returned at line 56 in wiring_digital.c   pin is still setup as input.

moving line 93 to after line 96 in wiring_digital.c fixes the issue.

Arduino random() function gives an error

The following program:

void loop() {
  Serial.println(random(6));
  delay(1000);
}

gives the compile error:

/var/folders/fd/7rbn3jxx5j942sk5kn0vhb740000gn/T/arduino_build_521905/core/core.a(WMath.cpp.o): In function `random(long)':
/Users/david/Library/Arduino15/packages/realtek/hardware/AmebaD/3.0.4/cores/arduino/WMath.cpp:47: undefined reference 
to `rtl_random'

How disable debugging messages

Is there a way to disable the debugging messages that get output on the serial port; for example, at startup:

#calibration_ok:[2:19:11]

and on connecting to Wi-Fi, several messages such as:

RTL8721D[Driver]: set group key to hw: alg:4(WEP40-1 WEP104-5 TKIP-2 AES-4) keyid

Compile fails on Windows if space exists in path (eg username)

fails on this copy command due to space in path

cmd /c copy /y "C:\\Users\\Michael" "Gilchrist\\AppData\\Local\\Arduino15\\packages\\realtek\\tools\\ameba_d_tools\\1.0.6\\km0_km4_image2.bin" "C:\\Users\\MICHAE~1\\AppData\\Local\\Temp\\arduino_build_798621" The system cannot find the file specified. exit status 1 Error compiling for board RTL8720DN(BW16).

full output: https://pastebin.com/4sm2K86K

SoftWire

I am trying to run the ListDevices example from the SoftWire library that does I2C in software and bit bangs the digitalWrite/digitalRead to implement I2C. I know there is hardware I2C but my device is not connected to one of those pins. I am reusing a board made for an ESP8266 so i cannot change which pins it is connected to. I have defined pins 23 and 2 for SDA and SCL (PA_30 and PB_2). I do not see any toggling on the scope. I have verified that digitalWrite and digitalRead work for both pins. Maybe there is a limit to how fast the GPIO can be toggled?

Problems uploading from the Arduino IDE

Today I received an Ameba RTL8722DM IoT Development Board from Seeed Studio.

When I connect the CON3 USB port to my computer I get /dev/cu.usbserial-AV0JH7JH on the Port menu.

Selecting this and uploading the Blink sketch then gives:

An error occurred while uploading the sketch
cp tools/macos/image_tool/imgtool_flashloader_amebad.bin ./
Please enter the upload mode (wait 5s)
    05
    04
    03
    02
    01
./tools/macos/image_tool/amebad_image_tool /dev/cu.usbserial-AV0JH7JH

Please let me know what I need to do to get this to work.

I'm using Arduino 1.8.13 on a MacBook Pro running macOS High Sierra 10.13.6.

#include <map> won't compile

It seems like everytime i want to include a standard library, the project fails to compile. usually due to naming conflicts between things in the SDK and things in the Arduino Core.

For instance if you #include "list" it will break do to the min/max methods in both arduinocore and the sdk.

This is what i get when trying to include "map"

In file included from /home/daniel/.arduino15/packages/realtek/tools/ameba_d_asdk_toolchain/1.0.1/arm-none-eabi/include/c++/6.5.0/ext/string_conversions.h:43:0,
                from /home/daniel/.arduino15/packages/realtek/tools/ameba_d_asdk_toolchain/1.0.1/arm-none-eabi/include/c++/6.5.0/bits/basic_string.h:5429,
                from /home/daniel/.arduino15/packages/realtek/tools/ameba_d_asdk_toolchain/1.0.1/arm-none-eabi/include/c++/6.5.0/string:52,
                from /home/daniel/.arduino15/packages/realtek/tools/ameba_d_asdk_toolchain/1.0.1/arm-none-eabi/include/c++/6.5.0/stdexcept:39,
                from /home/daniel/.arduino15/packages/realtek/tools/ameba_d_asdk_toolchain/1.0.1/arm-none-eabi/include/c++/6.5.0/array:39,
                from /home/daniel/.arduino15/packages/realtek/tools/ameba_d_asdk_toolchain/1.0.1/arm-none-eabi/include/c++/6.5.0/tuple:39,
                from /home/daniel/.arduino15/packages/realtek/tools/ameba_d_asdk_toolchain/1.0.1/arm-none-eabi/include/c++/6.5.0/bits/stl_map.h:63,
                from /home/daniel/.arduino15/packages/realtek/tools/ameba_d_asdk_toolchain/1.0.1/arm-none-eabi/include/c++/6.5.0/map:61,
                from /tmp/arduino_modified_sketch_773068/WiFiAPMode.ino:2:
/home/daniel/.arduino15/packages/realtek/tools/ameba_d_asdk_toolchain/1.0.1/arm-none-eabi/include/c++/6.5.0/cstdio:127:11: error: '::printf' has not been declared
  using ::printf;
          ^~~~~~
/home/daniel/.arduino15/packages/realtek/tools/ameba_d_asdk_toolchain/1.0.1/arm-none-eabi/include/c++/6.5.0/cstdio:137:11: error: '::sprintf' has not been declared
  using ::sprintf;
          ^~~~~~~

I appreciate the work that has been done to try and include these useful chips into the Arduino environment. However, This still needs a lot of work and a lot of testing to make sure users have a good experience like they do with the similar ESP8266.

Switching between Central an Peripheral

I catch permanent freeze after switch between Central to Peripheral. Call of BLE.beginPeripheral() blocks program permanently.

void WifiLoop()
{
int connecting_flag = 0;
// attempt to connect to Wifi network
if (WiFi.status() != WL_CONNECTED)
{
Serial.println("WiFi disconnected");
connecting_flag = 1;
BLE.configScan()->stopScan();
BLE.end();
Serial.println("Begin per...");
BLE.beginPeripheral();
Serial.println("Start adv...");
BLE.configAdvert()->startAdv();
}

while (WiFi.status() != WL_CONNECTED) {
Serial.println("Wait WiFi config..");
// wait for connection
delay(5000);
}
if (connecting_flag)
{
connecting_flag = 0;
BLE.beginCentral(0);
BLE.configScan()->startScan();
}
}

void BleAdvSetup()
{
//ble conf service
BLE.configServer(1);
configService.addService();
configService.begin();

// Wifi config service requires a specific advertisement format to be recognised by the app
// The advertisement needs the local BT address, which can only be obtained after starting peripheral mode
// Thus, we stop advertising to update the advert data, wait for advertising to stop, then restart advertising with new data

BLE.configAdvert()->stopAdv();
BLE.configAdvert()->setAdvData(configService.advData());
BLE.configAdvert()->updateAdvertParams();
delay(100);
//BLE.beginPeripheral();
//BLE.configAdvert()->startAdv();
}

void BleSetup()
{
BLE.init();
BLE.configScan()->setScanMode(GAP_SCAN_MODE_PASSIVE); // Active mode requests for scan response packets
BLE.configScan()->setScanInterval(5000); // Start a scan every 500ms
BLE.configScan()->setScanWindow(1000); // Each scan lasts for 250ms
BLE.configScan()->updateScanParams();
BLE.configScan()->setScanDuplicateFilter(0);
// Provide a callback function to process scan data.
// If no function is provided, default BLEScan::printScanInfo is used
BLE.setScanCallback(BleScanFunction);

BleAdvSetup();

BLE.beginCentral(0);
BLE.configScan()->startScan(); // Repeat scans for 5 seconds, then stop
}

Creating a Wi-Fi Soft Access Point options

A couple of other questions:

  • Is there a call to disconnect a Soft Access Point. On the ESP8266/32 it's:

    WiFi.softAPdisconnect(true);
    
  • Is there a call to create a hidden Soft Access Point? On the ESP8266/32 there's an optional fourth parameter:

    bool hidden = true;
    WiFi.softAP(ssid, pass, channel, hidden);
    

I've had a look in the source but can't find anything.
Thanks, David

Export compiled binary

Warning: This core does not support exporting sketches. Please consider upgrading it or contacting its author

Serial fixed at 115200 baud

In the following program:

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.println("Hello");
  delay(1000);
}

the statement Serial.begin(9600) seems to be ignored, and the baud rate is left at 115200.

Add Software I2C support

This is more of a feature request than an Issue. I know there is Hardware I2C which is fantastic! This is something that is lacking with the ESP8266 and I look forward to utilizing it in future projects. However, currently I am trying to reporpose some PCBs I had made for the ESP8266 to be used with the RTL8720DN (BW16) and it uses different pins. There is a SoftWire library that can be used, but I also have to update the subsequent sensor libraries to use SoftWire instead of the standard Wire interface. Please consider adding soft I2C support to Wire when selecting pins that do not have hardware support.

WiFiAPMode example tied to firmware version

The Access Point example WiFiAPMode.ino contains the test:

    String fv = WiFi.firmwareVersion();
    if (fv != "1.0.0") {
        Serial.println("Please upgrade the firmware");
    }

This seems dangerous, since it will stop working if you update the firmware to, for example, 1.1.0.

Boot pins?

please provide a table similar to below on what state the pins should be in on boot. I know pulling LOG_TX low will put it in UART Download Mode, but it appears pulling PA_27 low does something as well. I could not find any information in the datasheet about this either.

                                      | GPIO 0 | GPIO 2 | GPIO 15 (MTDO)
  | ----------------------------------|--------|--------|---------
  | Flash Startup (Normal)            |   1    |   1    |   00
  | UART Download Mode (Programming)  |   0    |   1    |   0
  | SD-Card Boot                      |   0    |   0    |   1
  | 

RTL8720D and Neopixel

I am pointed from the Ameba forum to open an issue here.

Here is the complete post:


I have RTL8720D and I tried to use some Neopixel with it. Neopixel is WS2812 and I connected it to pin 10. This is the sketch:

#include <Adafruit_NeoPixel.h>
#define PIN 10
Adafruit_NeoPixel strip = Adafruit_NeoPixel(1, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
  strip.begin();
  strip.setBrightness(50);
  strip.show(); // Initialize all pixels to 'off'
}
void loop() {
  colorWipe(strip.Color(0, 255, 0), 1000); // Green
  //colorWipe(strip.Color(255, 0, 0), 1000); // Green
  //colorWipe(strip.Color(0, 0, 255), 1000); // Green
  colorWipe(strip.Color(0, 0, 0), 1000); // white
}

// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, c);
      strip.show();
      delay(wait);
  }
}

With this setup, my Neopixel does not work. What am I doing wrong? I use Arduino IDE. I can blink the regular LED on that pin. What could be wrong with Neopixel? Should I use some other pin?


So, I am told that SDK is not supporting WS2812. Is there any chance to support it in near future?

Support for Wi-Fi Soft Access Point?

Does the RTL8722 core support creating a soft access point, like the ESP8266 or ESP32?

I can't see any commands such as WiFi.softAP().

If not, are there any plans to add it?

Problems Creating a Wi-Fi Soft Access Point

I'm having a lot of problems creating a Wi-Fi soft access point using a call to WiFi.apbegin(ssid, pass, channel).

If I run the WiFiAPMode example it works OK, and I can join the network yourNetwork from my computer with the password Password.

However, if I try to integrate the code into my program I get the message "AP mode already started", and I can see the network in the list of networks, but if I try to connect to the network I get a message saying the password is not a WPA2 password.

The differences between my program and the example are:

  • I'm not calling printWifiData() or printCurrentNet().

  • I've changed loop() to an empty loop; in other words:

    void loop() { }
    

Any suggestions?

Reading push buttons J17 and J24

Are the push buttons J17 and J24 on the RTL8722DM user readable on the input pins?

Alternatively, is there a circuit diagram of the RTL8722DM available so we could answer this sort of question ourselves?

Thanks, David

AT Serial

I am havving trouble using the Serial TX and RX that is usually used for the AT commands in the arduino IDE, the serial on PB1 and PB2. From what it looks like this should be Serial2. but i do not get any output on the terminal or on the oscilliscope when trying to write to Serial2

When i setup on arduino,Not find ameba_d_tools_windows-1.0.6.tar.gz

download https://github.com/ambiot/ambd_arduino/master/dev/Arduino_package/release/ameba_d_tools_windows-1.0.6.tar.gz  error
java.lang.RuntimeException: java.lang.Exception: download https://github.com/ambiot/ambd_arduino/master/dev/Arduino_package/release/ameba_d_tools_windows-1.0.6.tar.gz  error
	at cc.arduino.contributions.packages.ui.ContributionManagerUI.lambda$onInstallPressed$2(ContributionManagerUI.java:179)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.Exception: download https://github.com/ambiot/ambd_arduino/master/dev/Arduino_package/release/ameba_d_tools_windows-1.0.6.tar.gz error
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:149)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:83)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:60)
	at cc.arduino.contributions.packages.ContributionInstaller.install(ContributionInstaller.java:112)
	at cc.arduino.contributions.packages.ui.ContributionManagerUI.lambda$onInstallPressed$2(ContributionManagerUI.java:172)
	... 1 more
Caused by: java.io.IOException: Received invalid http status code from server: 404
	at cc.arduino.utils.network.FileDownloader.openConnectionAndFillTheFile(FileDownloader.java:239)
	at cc.arduino.utils.network.FileDownloader.downloadFile(FileDownloader.java:182)
	at cc.arduino.utils.network.FileDownloader.download(FileDownloader.java:129)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:147)
	... 5 more

auto flash support

auto upload flash & reset system is a key feature for developer on ameba arduino.
https://github.com/jojoling/ameba_bw16_autoflash

amebad_image_tool issues:

  1. It can work on windows 10. But it has a issue that will get "error: Enter Uart Download Mode." only once when USB serial port device just plugin into computer.

  2. Linux/macOS don't work due to "amebad_image_tool(no source)" also control RS232 signal DTR/RTS. It makes system leave uart download mode and get failed. It can see this situation on oscilloscope.

Thanks.

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.