Skip to content

Commit

Permalink
fix: port argument visibility
Browse files Browse the repository at this point in the history
  • Loading branch information
Vovke committed Oct 3, 2024
1 parent ad92b3a commit ef687bc
Show file tree
Hide file tree
Showing 5 changed files with 86 additions and 5 deletions.
16 changes: 12 additions & 4 deletions Readme.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,20 @@

# Pilkki
SWD flashing tool for EFM32 microcontrollers.

## Project structure

Utility to interact with flasher could be found in [software](software) folder.
The project is divided into three parts:

1. **[Software](software)**: The flashing utility.
2. **[Electronics](electronics)**: Schematics and PCB (KiCAD).
3. **[Firmware](firmware)**: Firmware for the target device.

### How to Use

To use flasher, call `cargo run`, or build by `cargo build --release`
To use the flasher, you can either:

Schematics and PCB (KiCAD) are in [electronics](electronics) folder.
- Run the utility directly with `cargo run`
- Build the project in release mode with `cargo build --release`

Firmware sources are [here](firmware)
More info on how to use pilkki in [Readme.md](software/Readme.md) in the [Software](software) section
10 changes: 10 additions & 0 deletions electronics/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Pilkki Electronics
This folder contains the schematics and PCB layout for the Pilkki, created in KiCad.

### Files

- `pilkki.kicad_pcb`: The PCB layout.
- `pilkki.kicad_sch`: The circuit schematics.
- `pilkki.kicad_pro`: The KiCad project file.

To view and edit these files, use [KiCad](https://kicad.org/).
11 changes: 11 additions & 0 deletions firmware/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Pilkki Firmware
This folder contains the source code for the firmware that runs on Pilkki.

### Structure

- `app/`: Application code for the firmware.
- `common/`: Common utility functions.
- `drivers/`: Device drivers.
- `targets/`: Target-specific code.

Build instructions can be found in the respective submodules.
52 changes: 52 additions & 0 deletions software/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@

# Pilkki Software
This folder contains the utility to interact with the flasher.

## How to Use

To run the flashing tool:
- Use `cargo run` to run the tool.
- Use `cargo build --release` to build the release version.

The utility should automatically detect the connected port; otherwise, you can specify it manually with the `--port` flag.

### Getting help
```sh
cargo run -- help
```

### Finding the Port to Which Your Device Is Connected:

**Linux:**
```sh
ls /dev/ttyUSB*
```

**MacOS:**
```sh
ls /dev/tty.* /dev/cu.*
```

### Verify Connection to the Device

To connect to the device, run:
```sh
cargo run -- connect --port /port/address
```

### Flash a New Binary:

To flash a new binary to the device:
```sh
cargo run -- write --input /path/to/your/binary.bin
```
Or, if you need to specify the port manually:
```sh
cargo run -- write --port /port/address --input /path/to/your/binary.bin
```

### Getting the Firmware Binary

You can either:
- Build the binary using the code from the [kampela-firmware](https://github.com/Kalapaja/kampela-firmware) repository.
- Download the compiled binary from the [releases](https://github.com/Kalapaja/kampela-firmware/releases) section.
2 changes: 1 addition & 1 deletion software/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ use clap::{arg, command, Command};
fn main() {
let matches = command!()
.subcommand_required(true)
.arg(arg!(-p --port <PORT> "Serial port to interact with"))
.arg(arg!(-p --port <PORT> "Serial port to interact with").global(true))

.subcommand(Command::new("connect")
.about("Connect to the target and halt it"))
Expand Down

0 comments on commit ef687bc

Please sign in to comment.