Skip to content

Commit

Permalink
Fix the serial monitor when using 26MHz ESP32-C2
Browse files Browse the repository at this point in the history
  • Loading branch information
jessebraham committed Dec 9, 2022
1 parent af641cc commit 8d3d0ae
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 4 deletions.
16 changes: 15 additions & 1 deletion cargo-espflash/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -215,11 +215,25 @@ fn flash(args: FlashArgs, config: &Config) -> Result<()> {

if args.flash_args.monitor {
let pid = flasher.get_usb_pid()?;

let chip = flasher.chip();
let target = chip.into_target();

// The 26MHz ESP32-C2's need to be treated as a special case.
let default_baud = if chip == Chip::Esp32c2
&& !args.connect_args.use_stub
&& target.crystal_freq(&mut flasher.connection())? == 26
{
74_880
} else {
115_200
};

monitor(
flasher.into_interface(),
Some(&elf_data),
pid,
args.flash_args.monitor_baud.unwrap_or(115_200),
args.flash_args.monitor_baud.unwrap_or(default_baud),
)
.into_diagnostic()?;
}
Expand Down
16 changes: 15 additions & 1 deletion espflash/src/bin/espflash.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ use espflash::{
},
image_format::ImageFormatKind,
logging::initialize_logger,
targets::Chip,
update::check_for_update,
};
use log::{debug, LevelFilter};
Expand Down Expand Up @@ -154,11 +155,24 @@ fn flash(args: FlashArgs, config: &Config) -> Result<()> {
if args.flash_args.monitor {
let pid = flasher.get_usb_pid()?;

let chip = flasher.chip();
let target = chip.into_target();

// The 26MHz ESP32-C2's need to be treated as a special case.
let default_baud = if chip == Chip::Esp32c2
&& !args.connect_args.use_stub
&& target.crystal_freq(&mut flasher.connection())? == 26
{
74_880
} else {
115_200
};

monitor(
flasher.into_interface(),
Some(&elf_data),
pid,
args.flash_args.monitor_baud.unwrap_or(115_200),
args.flash_args.monitor_baud.unwrap_or(default_baud),
)
.into_diagnostic()?;
}
Expand Down
17 changes: 15 additions & 2 deletions espflash/src/cli/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ pub fn board_info(args: ConnectArgs, config: &Config) -> Result<()> {

/// Open a serial monitor
pub fn serial_monitor(args: MonitorArgs, config: &Config) -> Result<()> {
let flasher = connect(&args.connect_args, config)?;
let mut flasher = connect(&args.connect_args, config)?;
let pid = flasher.get_usb_pid()?;

let elf = if let Some(elf_path) = args.elf {
Expand All @@ -297,11 +297,24 @@ pub fn serial_monitor(args: MonitorArgs, config: &Config) -> Result<()> {
None
};

let chip = flasher.chip();
let target = chip.into_target();

// The 26MHz ESP32-C2's need to be treated as a special case.
let default_baud = if chip == Chip::Esp32c2
&& !args.connect_args.use_stub
&& target.crystal_freq(&mut flasher.connection())? == 26
{
74_880
} else {
115_200
};

monitor(
flasher.into_interface(),
elf.as_deref(),
pid,
args.connect_args.baud.unwrap_or(115_200),
args.connect_args.baud.unwrap_or(default_baud),
)
.into_diagnostic()?;

Expand Down

0 comments on commit 8d3d0ae

Please sign in to comment.