Skip to content

Commit ff3a46a

Browse files
fix: simplify README and restore important details
Updated the README to improve clarity and structure.
1 parent edf9003 commit ff3a46a

1 file changed

Lines changed: 89 additions & 157 deletions

File tree

README.md

Lines changed: 89 additions & 157 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,22 @@
11
# 🔬 PSLab Firmware
22

3-
<p align="center">
4-
<img src="https://imgs.search.brave.com/PqX-QZoJzXboFRKTgW9g0MzaUYoLo4W633jjL_276IE/rs:fit:860:0:0:0/g:ce/aHR0cHM6Ly9pMC53/cC5jb20vY29kZWhl/YXQub3JnL3dwLWNv/bnRlbnQvdXBsb2Fk/cy8yMDI1LzA2L3Bz/bGFiaW8uanBnP3Jl/c2l6ZT03MDAsNTAw/JnNzbD0x" width="300"/>
5-
</p>
6-
7-
<p align="center">
8-
Firmware for the <b>Pocket Science Lab (PSLab)</b> — a portable open-source electronics laboratory.
9-
</p>
10-
11-
<p align="center">
12-
<img src="https://img.shields.io/badge/build-passing-brightgreen"/>
13-
<img src="https://img.shields.io/badge/license-Apache%202.0-blue"/>
14-
<img src="https://img.shields.io/badge/platform-Embedded-orange"/>
15-
<img src="https://img.shields.io/badge/language-C-blue"/>
16-
</p>
3+
This repository contains firmware for the [Pocket Science Lab (PSLab)](https://pslab.io) open hardware platform. Hardware version 5 and 6 are supported.
174

185
---
196

207
## 🌟 Overview
218

22-
The **Pocket Science Lab (PSLab)** is a compact, powerful hardware platform that integrates multiple scientific instruments into a single device.
23-
24-
This repository contains the **firmware** that powers PSLab hardware (v5 & v6), enabling:
9+
The PSLab provides an array of test and measurement instruments for doing science and engineering experiments.
2510

26-
- Device control
27-
- Communication handling
28-
- Instrument execution
29-
30-
---
11+
Its built-in instruments include:
3112

32-
## ⚡ Features
13+
- Oscilloscope
14+
- Waveform Generator
15+
- Frequency Counter
16+
- Programmable Voltage & Current Sources
17+
- Logic Analyzer
3318

34-
35-
- 📊 Oscilloscope
36-
- 🌊 Waveform Generator
37-
- 🔢 Frequency Counter
38-
- 🔌 Programmable Voltage & Current Sources
39-
- 📈 Logic Analyzer
40-
41-
### 🔗 Connectivity
19+
The PSLab also supports communication via:
4220

4321
- UART
4422
- I2C
@@ -48,120 +26,59 @@ This repository contains the **firmware** that powers PSLab hardware (v5 & v6),
4826

4927
## 🧩 Open Source Ecosystem
5028

29+
The PSLab is a fully open device, and FOSSASIA provides a complete hardware and software stack:
5130

52-
53-
PSLab is part of a complete open-source ecosystem:
54-
55-
- 🔧 Hardware
56-
- ⚙️ Bootloader
57-
- 💻 Firmware *(this repo)*
58-
- 🐍 Python Library
59-
- 🖥️ Desktop Application
60-
- 📱 Android Application
31+
- Hardware
32+
- Bootloader
33+
- Firmware (this repository)
34+
- Python library
35+
- Graphical desktop application
36+
- Android app
6137

6238
---
6339

6440
## 🛒 Get a PSLab Device
6541

66-
You can purchase the Pocket Science Lab from:
67-
68-
- 🛍️ **FOSSASIA Official Store**
69-
👉 https://fossasia.com/shop
70-
71-
- 🌐 **Official PSLab Website (Resellers List)**
72-
👉 https://pslab.io
73-
74-
> 💡 Availability may vary by region. Check the official website for global distributors.
42+
- FOSSASIA Shop → https://fossasia.com/shop
43+
- Official Website → https://pslab.io
7544

7645
---
7746

7847
## 🔔 Stay Updated
7948

80-
Stay connected with the PSLab community:
81-
82-
- 💬 **Gitter Chat**
83-
👉 https://gitter.im/fossasia/pslab
84-
85-
- 📧 **Mailing List**
86-
👉 https://groups.google.com/g/pslab
87-
88-
- 🐦 **Twitter / X Updates**
89-
👉 https://twitter.com/fossasia
90-
91-
- 🌐 **Official Website**
92-
👉 https://pslab.io
49+
- Gitter Chat → https://gitter.im/fossasia/pslab
50+
- Mailing List → https://groups.google.com/g/pslab
9351

9452
---
9553

96-
## 🏢 About FOSSASIA
97-
98-
54+
## ⚙️ Dependencies
9955

100-
**FOSSASIA** is a global open-source organization focused on:
56+
The following tools are required to build the firmware:
10157

102-
- 🌍 Promoting open technologies
103-
- 🎓 Supporting student developers
104-
- 🤖 Building AI, hardware, and software solutions
105-
- 🧑‍💻 Running programs like **Google Summer of Code (GSoC)**
106-
107-
### 🌟 What FOSSASIA Does
108-
109-
- Maintains **100+ open-source projects**
110-
- Organizes **FOSSASIA Summit**
111-
- Supports developers worldwide
112-
113-
👉 Learn more: https://fossasia.org
58+
- xc16 compiler
59+
- cmake
11460

11561
---
11662

117-
## 🛠️ Tech Stack
118-
119-
| Component | Technology |
120-
|--------------|------------------|
121-
| Language | C |
122-
| Build System | CMake |
123-
| Compiler | Microchip XC16 |
124-
125-
---
126-
127-
## 📦 Repository Structure
128-
129-
```bash
130-
pslab-firmware/
131-
├── src/
132-
│ ├── bus/
133-
│ ├── helpers/
134-
│ ├── instruments/
135-
│ ├── registers/
136-
│ ├── sdcard/
137-
│ ├── main.c
138-
│ └── commands.c
139-
├── external/
140-
│ └── cmake-microchip/
141-
├── CMakeLists.txt
142-
├── flash.mdbscript
143-
└── README.md
144-
```
145-
146-
---
63+
## 🚀 Building
14764

148-
## 🚀 Getting Started
65+
This project is built with CMake.
14966

150-
### 1️⃣ Clone Repository
67+
### 1. Clone Repository
15168

15269
```bash
15370
git clone https://github.com/fossasia/pslab-firmware.git
15471
cd pslab-firmware
15572
```
15673

157-
### 2️⃣ Setup Submodules
74+
### 2. Initialize Submodules
15875

15976
```bash
16077
git submodule init
16178
git submodule update
16279
```
16380

164-
### 3️⃣ Build Firmware
81+
### 3. Build Firmware
16582

16683
```bash
16784
mkdir build
@@ -170,15 +87,13 @@ cmake ..
17087
make
17188
```
17289

173-
📌 Output:
90+
This will create:
17491

17592
```bash
17693
pslab-firmware.hex
17794
```
17895

179-
---
180-
181-
## 🧪 Build for PSLab v5
96+
### Build for PSLab v5
18297

18398
```bash
18499
cmake -DLEGACY_HARDWARE=true ..
@@ -188,88 +103,105 @@ cmake -DLEGACY_HARDWARE=true ..
188103

189104
## 🔥 Flashing Firmware
190105

191-
### 🔌 USB Method (Recommended)
106+
The firmware can be flashed over USB or by using a programmer such as the PICkit3.
192107

108+
### 🔌 USB Method
193109

110+
Firmware can be flashed over USB if the device already has the bootloader installed.
194111

195-
```
196-
bashmcbootflash --port <PORT> -b 460800 pslab-firmware.hex
197-
```
198-
199-
### Steps:
112+
Flashing requires `mcbootflash`, which can be installed via:
200113

201-
1. Hold **BOOT**
202-
2. Press **RESET**
203-
3. Wait for LED blinking
204-
4. Release BOOT
205-
5. Flash firmware
114+
- https://github.com/fossasia/mcbootflash
115+
- https://github.com/fossasia/pslab-python
206116

207-
---
117+
### Steps:
208118

209-
### ⚠️ Using Programmer (PICkit3)
119+
1. Press and hold the **BOOT** button
120+
2. Press the **RESET** button
121+
3. The status LED will start blinking
122+
4. Release the BOOT button
123+
5. Run:
210124

211125
```bash
212-
mdb.sh flash.mdbscript
126+
mcbootflash --port <PORT> -b 460800 pslab-firmware.hex
213127
```
214128

215-
> ⚠️ This may overwrite the bootloader
129+
6. Reset or power cycle the device
216130

217131
---
218132

219-
## 🔁 Bootloader Mode (PSLab v5)
133+
### ⚠️ Using a Programmer
220134

135+
If flashing using a programmer:
221136

137+
> ⚠️ Warning: Flashing firmware directly may overwrite the bootloader.
138+
139+
It is recommended to create a combined HEX file containing both bootloader and firmware.
222140

223141
Steps:
224142

225-
1. Bridge **BOOT + GND pins**
226-
2. Reset device
227-
3. LED starts blinking
143+
1. Disconnect device
144+
2. Connect programmer to ICSP header
145+
3. Power device via USB
146+
4. Run:
147+
148+
```bash
149+
mdb.sh flash.mdbscript
150+
```
151+
152+
5. Disconnect programmer
228153

229154
---
230155

231-
## 🐳 Dev Container Support
156+
## 🔁 Bootloader Mode (PSLab v5)
232157

158+
PSLab v5 does not have a BOOT button.
233159

160+
To enter bootloader mode:
234161

235-
* Open in VS Code
236-
* Click **Reopen in Container**
237-
* Start development instantly
162+
- Bridge BOOT pin and GND
163+
- Reset or power cycle device
164+
- LED should start blinking
238165

239166
---
240167

241-
## 🤝 Contributing
168+
## 🐳 Dev Container Usage
242169

243-
We welcome contributions!
170+
This repository supports development using VS Code Dev Containers and GitHub Codespaces.
244171

245-
1. Fork the repository
246-
2. Create a branch
247-
3. Commit changes
248-
4. Submit a Pull Request
172+
Steps:
173+
174+
1. Open in VS Code
175+
2. Click "Reopen in Container"
176+
3. Start development
249177

250178
---
251179

252-
## 📄 License
180+
## 📦 Repository Structure
253181

254-
Licensed under **Apache 2.0**
182+
```
183+
pslab-firmware/
184+
├── src/
185+
├── external/
186+
├── CMakeLists.txt
187+
├── flash.mdbscript
188+
└── README.md
189+
```
255190

256191
---
257192

258-
## 🌍 Why PSLab?
193+
## 🤝 Contributing
259194

260-
* 🧪 Affordable lab equipment
261-
* 🌐 Fully open-source
262-
* 🎓 Ideal for education & research
195+
1. Fork the repository
196+
2. Create a branch
197+
3. Commit changes
198+
4. Submit a Pull Request
263199

264200
---
265201

266-
## ⭐ Support
267-
268-
If you like this project:
202+
## 📄 License
269203

270-
* ⭐ Star the repo
271-
* 🍴 Fork it
272-
* 🚀 Contribute
204+
Apache 2.0
273205

274206
---
275207

0 commit comments

Comments
 (0)