Skip to content

upstream changes #196

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Feb 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
165 changes: 165 additions & 0 deletions boards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6964,6 +6964,171 @@ dfrobot_beetle_esp32c3.menu.EraseFlash.none.upload.erase_cmd=
dfrobot_beetle_esp32c3.menu.EraseFlash.all=Enabled
dfrobot_beetle_esp32c3.menu.EraseFlash.all.upload.erase_cmd=-e


##############################################################

dfrobot_firebeetle2_esp32e.name=FireBeetle 2 ESP32-E

dfrobot_firebeetle2_esp32e.upload.tool=esptool_py
dfrobot_firebeetle2_esp32e.upload.maximum_size=1310720
dfrobot_firebeetle2_esp32e.upload.maximum_data_size=327680
dfrobot_firebeetle2_esp32e.upload.flags=
dfrobot_firebeetle2_esp32e.upload.extra_flags=

dfrobot_firebeetle2_esp32e.serial.disableDTR=true
dfrobot_firebeetle2_esp32e.serial.disableRTS=true

dfrobot_firebeetle2_esp32e.build.tarch=xtensa
dfrobot_firebeetle2_esp32e.build.bootloader_addr=0x1000
dfrobot_firebeetle2_esp32e.build.target=esp32
dfrobot_firebeetle2_esp32e.build.mcu=esp32
dfrobot_firebeetle2_esp32e.build.core=esp32
dfrobot_firebeetle2_esp32e.build.variant=dfrobot_firebeetle2_esp32e
dfrobot_firebeetle2_esp32e.build.board=DFROBOT_FIREBEETLE_2_ESP32E

dfrobot_firebeetle2_esp32e.build.f_cpu=240000000L
dfrobot_firebeetle2_esp32e.build.flash_size=4MB
dfrobot_firebeetle2_esp32e.build.flash_freq=40m
dfrobot_firebeetle2_esp32e.build.flash_mode=dio
dfrobot_firebeetle2_esp32e.build.boot=dio
dfrobot_firebeetle2_esp32e.build.partitions=default
dfrobot_firebeetle2_esp32e.build.defines=
dfrobot_firebeetle2_esp32e.build.loop_core=
dfrobot_firebeetle2_esp32e.build.event_core=

dfrobot_firebeetle2_esp32e.menu.PSRAM.disabled=Disabled
dfrobot_firebeetle2_esp32e.menu.PSRAM.disabled.build.defines=
dfrobot_firebeetle2_esp32e.menu.PSRAM.disabled.build.extra_libs=
dfrobot_firebeetle2_esp32e.menu.PSRAM.enabled=Enabled
dfrobot_firebeetle2_esp32e.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw
dfrobot_firebeetle2_esp32e.menu.PSRAM.enabled.build.extra_libs=

dfrobot_firebeetle2_esp32e.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.default.build.partitions=default
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.default_8MB=8M Flash (3MB APP/1.5MB FAT)
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.minimal.build.partitions=minimal
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.no_ota.build.partitions=no_ota
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.huge_app.build.partitions=huge_app
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FAT)
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.fatflash.build.partitions=ffat
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.fatflash.upload.maximum_size=2097152
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9MB FATFS)
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.rainmaker=RainMaker
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
dfrobot_firebeetle2_esp32e.menu.PartitionScheme.rainmaker.upload.maximum_size=3145728

dfrobot_firebeetle2_esp32e.menu.CPUFreq.240=240MHz (WiFi/BT)
dfrobot_firebeetle2_esp32e.menu.CPUFreq.240.build.f_cpu=240000000L
dfrobot_firebeetle2_esp32e.menu.CPUFreq.160=160MHz (WiFi/BT)
dfrobot_firebeetle2_esp32e.menu.CPUFreq.160.build.f_cpu=160000000L
dfrobot_firebeetle2_esp32e.menu.CPUFreq.80=80MHz (WiFi/BT)
dfrobot_firebeetle2_esp32e.menu.CPUFreq.80.build.f_cpu=80000000L
dfrobot_firebeetle2_esp32e.menu.CPUFreq.40=40MHz (40MHz XTAL)
dfrobot_firebeetle2_esp32e.menu.CPUFreq.40.build.f_cpu=40000000L
dfrobot_firebeetle2_esp32e.menu.CPUFreq.26=26MHz (26MHz XTAL)
dfrobot_firebeetle2_esp32e.menu.CPUFreq.26.build.f_cpu=26000000L
dfrobot_firebeetle2_esp32e.menu.CPUFreq.20=20MHz (40MHz XTAL)
dfrobot_firebeetle2_esp32e.menu.CPUFreq.20.build.f_cpu=20000000L
dfrobot_firebeetle2_esp32e.menu.CPUFreq.13=13MHz (26MHz XTAL)
dfrobot_firebeetle2_esp32e.menu.CPUFreq.13.build.f_cpu=13000000L
dfrobot_firebeetle2_esp32e.menu.CPUFreq.10=10MHz (40MHz XTAL)
dfrobot_firebeetle2_esp32e.menu.CPUFreq.10.build.f_cpu=10000000L

dfrobot_firebeetle2_esp32e.menu.FlashMode.qio=QIO
dfrobot_firebeetle2_esp32e.menu.FlashMode.qio.build.flash_mode=dio
dfrobot_firebeetle2_esp32e.menu.FlashMode.qio.build.boot=qio
dfrobot_firebeetle2_esp32e.menu.FlashMode.dio=DIO
dfrobot_firebeetle2_esp32e.menu.FlashMode.dio.build.flash_mode=dio
dfrobot_firebeetle2_esp32e.menu.FlashMode.dio.build.boot=dio
dfrobot_firebeetle2_esp32e.menu.FlashMode.qout=QOUT
dfrobot_firebeetle2_esp32e.menu.FlashMode.qout.build.flash_mode=dout
dfrobot_firebeetle2_esp32e.menu.FlashMode.qout.build.boot=qout
dfrobot_firebeetle2_esp32e.menu.FlashMode.dout=DOUT
dfrobot_firebeetle2_esp32e.menu.FlashMode.dout.build.flash_mode=dout
dfrobot_firebeetle2_esp32e.menu.FlashMode.dout.build.boot=dout

dfrobot_firebeetle2_esp32e.menu.FlashFreq.80=80MHz
dfrobot_firebeetle2_esp32e.menu.FlashFreq.80.build.flash_freq=80m
dfrobot_firebeetle2_esp32e.menu.FlashFreq.40=40MHz
dfrobot_firebeetle2_esp32e.menu.FlashFreq.40.build.flash_freq=40m

dfrobot_firebeetle2_esp32e.menu.FlashSize.4M=4MB (32Mb)
dfrobot_firebeetle2_esp32e.menu.FlashSize.4M.build.flash_size=4MB
dfrobot_firebeetle2_esp32e.menu.FlashSize.8M=8MB (64Mb)
dfrobot_firebeetle2_esp32e.menu.FlashSize.8M.build.flash_size=8MB
dfrobot_firebeetle2_esp32e.menu.FlashSize.8M.build.partitions=default_8MB
dfrobot_firebeetle2_esp32e.menu.FlashSize.2M=2MB (16Mb)
dfrobot_firebeetle2_esp32e.menu.FlashSize.2M.build.flash_size=2MB
dfrobot_firebeetle2_esp32e.menu.FlashSize.2M.build.partitions=minimal
dfrobot_firebeetle2_esp32e.menu.FlashSize.16M=16MB (128Mb)
dfrobot_firebeetle2_esp32e.menu.FlashSize.16M.build.flash_size=16MB

dfrobot_firebeetle2_esp32e.menu.UploadSpeed.921600=921600
dfrobot_firebeetle2_esp32e.menu.UploadSpeed.921600.upload.speed=921600
dfrobot_firebeetle2_esp32e.menu.UploadSpeed.115200=115200
dfrobot_firebeetle2_esp32e.menu.UploadSpeed.115200.upload.speed=115200
dfrobot_firebeetle2_esp32e.menu.UploadSpeed.256000.windows=256000
dfrobot_firebeetle2_esp32e.menu.UploadSpeed.256000.upload.speed=256000
dfrobot_firebeetle2_esp32e.menu.UploadSpeed.230400.windows.upload.speed=256000
dfrobot_firebeetle2_esp32e.menu.UploadSpeed.230400=230400
dfrobot_firebeetle2_esp32e.menu.UploadSpeed.230400.upload.speed=230400
dfrobot_firebeetle2_esp32e.menu.UploadSpeed.460800.linux=460800
dfrobot_firebeetle2_esp32e.menu.UploadSpeed.460800.macosx=460800
dfrobot_firebeetle2_esp32e.menu.UploadSpeed.460800.upload.speed=460800
dfrobot_firebeetle2_esp32e.menu.UploadSpeed.512000.windows=512000
dfrobot_firebeetle2_esp32e.menu.UploadSpeed.512000.upload.speed=512000

dfrobot_firebeetle2_esp32e.menu.LoopCore.1=Core 1
dfrobot_firebeetle2_esp32e.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
dfrobot_firebeetle2_esp32e.menu.LoopCore.0=Core 0
dfrobot_firebeetle2_esp32e.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0

dfrobot_firebeetle2_esp32e.menu.EventsCore.1=Core 1
dfrobot_firebeetle2_esp32e.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
dfrobot_firebeetle2_esp32e.menu.EventsCore.0=Core 0
dfrobot_firebeetle2_esp32e.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0

dfrobot_firebeetle2_esp32e.menu.DebugLevel.none=None
dfrobot_firebeetle2_esp32e.menu.DebugLevel.none.build.code_debug=0
dfrobot_firebeetle2_esp32e.menu.DebugLevel.error=Error
dfrobot_firebeetle2_esp32e.menu.DebugLevel.error.build.code_debug=1
dfrobot_firebeetle2_esp32e.menu.DebugLevel.warn=Warn
dfrobot_firebeetle2_esp32e.menu.DebugLevel.warn.build.code_debug=2
dfrobot_firebeetle2_esp32e.menu.DebugLevel.info=Info
dfrobot_firebeetle2_esp32e.menu.DebugLevel.info.build.code_debug=3
dfrobot_firebeetle2_esp32e.menu.DebugLevel.debug=Debug
dfrobot_firebeetle2_esp32e.menu.DebugLevel.debug.build.code_debug=4
dfrobot_firebeetle2_esp32e.menu.DebugLevel.verbose=Verbose
dfrobot_firebeetle2_esp32e.menu.DebugLevel.verbose.build.code_debug=5

dfrobot_firebeetle2_esp32e.menu.EraseFlash.none=Disabled
dfrobot_firebeetle2_esp32e.menu.EraseFlash.none.upload.erase_cmd=
dfrobot_firebeetle2_esp32e.menu.EraseFlash.all=Enabled
dfrobot_firebeetle2_esp32e.menu.EraseFlash.all.upload.erase_cmd=-e

##############################################################

dfrobot_firebeetle2_esp32s3.name=DFRobot Firebeetle 2 ESP32-S3
Expand Down
14 changes: 11 additions & 3 deletions cores/esp32/Arduino.h
Original file line number Diff line number Diff line change
Expand Up @@ -137,9 +137,19 @@ typedef unsigned int word;
void setup(void);
void loop(void);

// The default is using Real Hardware random number generator
// But when randomSeed() is called, it turns to Psedo random
// generator, exactly as done in Arduino mainstream
long random(long);
long random(long, long);
#endif
// Calling randomSeed() will make random()
// using pseudo random like in Arduino
void randomSeed(unsigned long);
// Allow the Application to decide if the random generator
// will use Real Hardware random generation (true - default)
// or Pseudo random generation (false) as in Arduino MainStream
void useRealRandomGenerator(bool useRandomHW);
#endif
long map(long, long, long, long, long);

#ifdef __cplusplus
Expand Down Expand Up @@ -207,8 +217,6 @@ void setToneChannel(uint8_t channel = 0);
void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0);
void noTone(uint8_t _pin);

// WMath prototypes
long random(long);
#endif /* __cplusplus */

#include "pins_arduino.h"
Expand Down
16 changes: 15 additions & 1 deletion cores/esp32/WMath.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,22 @@ extern "C" {
}
#include "esp32-hal-log.h"

// Allows the user to choose between Real Hardware
// or Software Pseudo random generators for the
// Arduino random() functions
static bool s_useRandomHW = true;
void useRealRandomGenerator(bool useRandomHW) {
s_useRandomHW = useRandomHW;
}

// Calling randomSeed() will force the
// Pseudo Random generator like in
// Arduino mainstream API
void randomSeed(unsigned long seed)
{
if(seed != 0) {
srand(seed);
s_useRandomHW = false;
}
}

Expand All @@ -46,7 +58,9 @@ long random( long howbig )
if (howbig < 0) {
return (random(0, -howbig));
}
return esp_random() % howbig;
// if randomSeed was called, fall back to software PRNG
uint32_t val = (s_useRandomHW) ? esp_random() : rand();
return val % howbig;
}

long random(long howsmall, long howbig)
Expand Down
Loading