Commit Graph

71 Commits

Author SHA1 Message Date
10fb65ae40 docu: current architecture draft; layout slightly suboptimal.
All checks were successful
Build RPi Pico firmware image / Build-Firmware (push) Successful in 3m0s
Check code formatting / Check-C-Format (push) Successful in 7s
Check code formatting / Check-Python-Flake8 (push) Successful in 9s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 5s
Run unit tests on host / Run-Unit-Tests (push) Successful in 8s
2025-05-20 19:09:14 +02:00
e2895589f1 schematic: Update to KiCad 9 and some minor fixes
All checks were successful
Build RPi Pico firmware image / Build-Firmware (push) Successful in 3m0s
Check code formatting / Check-C-Format (push) Successful in 6s
Check code formatting / Check-Python-Flake8 (push) Successful in 8s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 4s
Run unit tests on host / Run-Unit-Tests (push) Successful in 7s
- Add gain setting resistor for I2S Amp
- Add three pushbuttons
2025-04-01 21:21:48 +02:00
de5f0a3ad0 Add test rig
All checks were successful
Build RPi Pico firmware image / Build-Firmware (push) Successful in 3m3s
Check code formatting / Check-C-Format (push) Successful in 8s
Check code formatting / Check-Python-Flake8 (push) Successful in 9s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 4s
Run unit tests on host / Run-Unit-Tests (push) Successful in 6s
2025-04-01 21:14:39 +02:00
b818ed933d Merge pull request 'nfc-module' (#10) from nfc-module into main
All checks were successful
Check code formatting / Check-C-Format (push) Successful in 6s
Check code formatting / Check-Python-Flake8 (push) Successful in 9s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 4s
Run unit tests on host / Run-Unit-Tests (push) Successful in 7s
Build RPi Pico firmware image / Build-Firmware (push) Successful in 2m58s
Reviewed-on: #10
Reviewed-by: Matthias Blankertz <matthias@blankertz.org>
2025-03-25 21:21:27 +00:00
ee43ad816a Providing public interface, fixed formatting.
All checks were successful
Build RPi Pico firmware image / Build-Firmware (push) Successful in 3m0s
Check code formatting / Check-C-Format (push) Successful in 7s
Check code formatting / Check-Python-Flake8 (push) Successful in 9s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 4s
Run unit tests on host / Run-Unit-Tests (push) Successful in 7s
2025-03-25 22:16:38 +01:00
a2a9c82471 Nfc module now depends on initialized MFRC522, fixed incorrect return type hint.
Some checks failed
Build RPi Pico firmware image / Build-Firmware (push) Successful in 3m0s
Check code formatting / Check-C-Format (push) Successful in 6s
Check code formatting / Check-Python-Flake8 (push) Failing after 8s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 4s
Run unit tests on host / Run-Unit-Tests (push) Successful in 7s
2025-03-25 22:05:14 +01:00
976bc4053c Made nfc.py executable, increased tocard_retries to 20 due to increased CPU frequency.
Some checks failed
Build RPi Pico firmware image / Build-Firmware (push) Successful in 2m57s
Check code formatting / Check-C-Format (push) Successful in 6s
Check code formatting / Check-Python-Flake8 (push) Failing after 8s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 5s
Run unit tests on host / Run-Unit-Tests (push) Successful in 7s
2025-03-25 20:37:58 +01:00
5cda9891f5 Added docstrings and license information.
Moved main.py contents to documentation as a simple example.
2025-03-25 20:37:58 +01:00
ba4c5175eb WIP: First working example for an async background task 2025-03-25 20:37:53 +01:00
dfd48a0314 Fix crash when starting audiocore from REPL
All checks were successful
Check code formatting / Check-C-Format (push) Successful in 7s
Check code formatting / Check-Python-Flake8 (push) Successful in 9s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 4s
Run unit tests on host / Run-Unit-Tests (push) Successful in 7s
Build RPi Pico firmware image / Build-Firmware (push) Successful in 3m0s
2025-03-23 19:12:51 +01:00
72d5d97d46 Merge pull request 'audiocore-mp3-decoder' (#12) from audiocore-mp3-decoder into main
All checks were successful
Build RPi Pico firmware image / Build-Firmware (push) Successful in 2m55s
Check code formatting / Check-C-Format (push) Successful in 6s
Check code formatting / Check-Python-Flake8 (push) Successful in 9s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 4s
Run unit tests on host / Run-Unit-Tests (push) Successful in 7s
Reviewed-on: #12
Reviewed-by: Stefan Kratochwil <kratochwil-la@gmx.de>
2025-03-22 10:19:11 +00:00
1385eee85c audiocore: Make it more obvious what __sev does
All checks were successful
Build RPi Pico firmware image / Build-Firmware (push) Successful in 2m55s
Check code formatting / Check-C-Format (push) Successful in 7s
Check code formatting / Check-Python-Flake8 (push) Successful in 9s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 5s
Run unit tests on host / Run-Unit-Tests (push) Successful in 8s
2025-03-22 10:54:23 +01:00
444b7c4d9f audiocore: Use constant for MP3 frame size 2025-03-22 10:54:23 +01:00
389fed4d3b MP3Player module to manage mp3 playing 2025-03-22 10:53:27 +01:00
931571bd0a audiocore: Add async support
Rename the exising audiocore C module to _audiocore and create a new
Micropython wrapper module audiocore. This makes it easier to implement
async methods.
Add interrupt support to _audiocore that notifies core0 whenever data
has been consumed from the MP3 bitstream buffer.
Use this interrupt and an asyncio.ThreadSafeFlag to implement
audiocore.async_put which will play back the provided buffer, allowing
other async tasks to run while waiting for space in the bitstream
buffer.
2025-03-22 10:53:27 +01:00
cc2bf8a84b audiocore: Integrate mp3 decoder 2025-03-22 10:53:27 +01:00
ff1ddfb639 Add helix_mp3 fixed-point MP3 decoder library 2025-03-17 21:13:34 +01:00
24d9261b40 Merge pull request 'micropython: Update to 1.24.1, with cherrypicked patches for pico-sdk 2.1.1' (#11) from micropython-1.24.1-pico-2.1.1 into main
All checks were successful
Build RPi Pico firmware image / Build-Firmware (push) Successful in 2m55s
Check code formatting / Check-C-Format (push) Successful in 7s
Check code formatting / Check-Python-Flake8 (push) Successful in 9s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 4s
Run unit tests on host / Run-Unit-Tests (push) Successful in 8s
Reviewed-on: #11
Reviewed-by: Stefan Kratochwil <kratochwil-la@gmx.de>
2025-03-17 20:07:33 +00:00
9c898853f8 ci: Add firmware build step
All checks were successful
Build RPi Pico firmware image / Build-Firmware (push) Successful in 2m57s
Check code formatting / Check-C-Format (push) Successful in 6s
Check code formatting / Check-Python-Flake8 (push) Successful in 8s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 4s
Run unit tests on host / Run-Unit-Tests (push) Successful in 7s
Try to build the actual firmware image in CI
2025-03-10 20:17:27 +01:00
c698dad6da micropython: Update to 1.24.1, with cherrypicked patches for pico-sdk 2.1.1 2025-03-10 20:17:25 +01:00
e07e42b9dc Merge pull request 'rp2-sd-driver' (#9) from rp2-sd-driver into main
All checks were successful
Check code formatting / Check-C-Format (push) Successful in 6s
Check code formatting / Check-Python-Flake8 (push) Successful in 8s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 4s
Run unit tests on host / Run-Unit-Tests (push) Successful in 7s
Reviewed-on: #9
Reviewed-by: Stefan Kratochwil <kratochwil-la@gmx.de>
2025-03-10 19:16:27 +00:00
98ecca0d09 rp2_sd: Cleanup and fixes
All checks were successful
Check code formatting / Check-C-Format (push) Successful in 6s
Check code formatting / Check-Python-Flake8 (push) Successful in 8s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 4s
Run unit tests on host / Run-Unit-Tests (push) Successful in 8s
- Use SD_SECTOR_SIZE define instead of magic number 512
- Replace uint8_t buf[1] with plain uint8_t
- Check sd_spi_read_dma precondition that sd_dma_context state has to be
  DMA_IDLE explicitly and return false instead of relying on assert
- sd_spi_dma_isr is time critical
2025-03-10 20:15:05 +01:00
f7d44516df test.py: Update to use rp2_sd module
Signed-off-by: Matthias Blankertz <matthias@blankertz.org>
2025-03-10 20:15:05 +01:00
460a67cf9f Add rp2 PIO and DMA fast SD card driver
The builtin micropython SD card driver using the default micropython SPI
implementation suffered from very low read speeds. Add an optimized SD
card driver using rp2 PIO and DMA. Currently read only, write support to
be added later.

Signed-off-by: Matthias Blankertz <matthias@blankertz.org>
2025-03-10 20:15:05 +01:00
48c5caa078 Merge pull request 'microdot-integration' (#8) from microdot-integration into main
All checks were successful
Check code formatting / Check-C-Format (push) Successful in 7s
Check code formatting / Check-Python-Flake8 (push) Successful in 9s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 4s
Run unit tests on host / Run-Unit-Tests (push) Successful in 7s
Reviewed-on: #8
Reviewed-by: Matthias Blankertz <matthias@blankertz.org>
2025-02-11 18:22:17 +00:00
b57283a04f microdot: First working example. We observe wifi instabilities/detectability issues.
All checks were successful
Check code formatting / Check-C-Format (push) Successful in 7s
Check code formatting / Check-Python-Flake8 (push) Successful in 8s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 4s
Run unit tests on host / Run-Unit-Tests (push) Successful in 7s
2025-01-28 21:44:40 +01:00
b5124b9b1c wifi: announce ssid, set ip. SSID visibilty varies between adapters. 2025-01-28 21:30:00 +01:00
fbea092a95 Added microdot submodule. 2025-01-28 21:23:48 +01:00
73d107f927 Merge pull request 'micropython-mfrc522' (#4) from micropython-mfrc522 into main
All checks were successful
Check code formatting / Check-C-Format (push) Successful in 6s
Check code formatting / Check-Python-Flake8 (push) Successful in 9s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 5s
Run unit tests on host / Run-Unit-Tests (push) Successful in 8s
Reviewed-on: #4
Reviewed-by: Matthias Blankertz <matthias@blankertz.org>
2025-01-28 18:33:05 +00:00
f213a51e36 Documented maximum observed delay for future reference.
All checks were successful
Check code formatting / Check-C-Format (push) Successful in 6s
Check code formatting / Check-Python-Flake8 (push) Successful in 8s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 4s
Run unit tests on host / Run-Unit-Tests (push) Successful in 7s
2025-01-28 19:25:57 +01:00
836f9ec42b Using relative paths for submodules. 2025-01-28 19:25:57 +01:00
e79d3886ed Usable mfrc522 code.
Not as async as possible, and definately needs a future revisit. But
works for now, with acceptable delays, if the newly introduced
tocard_retries parameter of class MFRC522 is used and set to a
reasonable low value.
2025-01-28 19:25:57 +01:00
1caa3f54a5 Being more pythonesk. 2025-01-28 19:25:57 +01:00
f00b2b1ab1 Made mfrc522.py part of our micropython environment. 2025-01-28 19:25:57 +01:00
3deba7d604 Fixes for flake8. 2025-01-28 19:25:57 +01:00
7188722cc8 Made tag uid retrieval awaitable. 2025-01-28 19:25:57 +01:00
553bbe95b2 Fixed uid output. Also fixed line endings (sorry). 2025-01-28 19:25:57 +01:00
62b93de024 We are not interested in the card's content. 2025-01-28 19:25:57 +01:00
4e7968fc0c Added deployment script and example main.py. 2025-01-28 19:25:57 +01:00
df33e072c3 Added micropython library for the mfrc522 card reader. 2025-01-28 19:25:57 +01:00
16a3fdb8d0 Merge pull request 'Check all shell scripts in our repo.' (#7) from runner_shellcheck into main
All checks were successful
Check code formatting / Check-C-Format (push) Successful in 32m14s
Check code formatting / Check-Python-Flake8 (push) Successful in 10s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 5s
Run unit tests on host / Run-Unit-Tests (push) Successful in 26s
Reviewed-on: #7
Reviewed-by: Matthias Blankertz <matthias@blankertz.org>
2025-01-14 20:12:03 +01:00
1981cac7de Check all shell scripts in our repo. 2025-01-14 20:11:53 +01:00
527df80623 Merge pull request 'Flashing via picotool is the new default.' (#6) from flash_with_picotool into main
Reviewed-on: #6
Reviewed-by: Matthias Blankertz <matthias@blankertz.org>
2025-01-14 20:11:39 +01:00
8b9d6ce9fc Check for required commands, cleanup, added help.
All checks were successful
Check code formatting / Check-C-Format (push) Successful in 7s
Check code formatting / Check-Python-Flake8 (push) Successful in 8s
Run unit tests on host / Run-Unit-Tests (push) Successful in 8s
2024-12-10 21:27:56 +01:00
50118aea49 Flashing via picotool is the new default.
All checks were successful
Check code formatting / Check-C-Format (push) Successful in 11s
Check code formatting / Check-Python-Flake8 (push) Successful in 10s
Run unit tests on host / Run-Unit-Tests (push) Successful in 11s
2024-12-10 00:26:51 +01:00
6f366ea81c Merge pull request 'audiocore-i2s-driver' (#3) from audiocore-i2s-driver into main
All checks were successful
Check code formatting / Check-C-Format (push) Successful in 1h6m31s
Check code formatting / Check-Python-Flake8 (push) Successful in 11s
Run unit tests on host / Run-Unit-Tests (push) Successful in 12s
Reviewed-on: #3
Reviewed-by: stefank <kratochwil-la@gmx.de>
2024-07-29 18:48:17 +00:00
ee5ea90e0a audiocore: Comment python API, some cleanup
All checks were successful
Check code formatting / Check-C-Format (push) Successful in 7s
Check code formatting / Check-Python-Flake8 (push) Successful in 9s
Run unit tests on host / Run-Unit-Tests (push) Successful in 7s
Signed-off-by: Matthias Blankertz <matthias@blankertz.org>
2024-06-02 11:58:21 +02:00
23a9c3f507 audiocore: Add unit tests for audiocore
Signed-off-by: Matthias Blankertz <matthias@blankertz.org>
2024-06-02 11:58:21 +02:00
910774cbe6 Add unit test infrastructure
Signed-off-by: Matthias Blankertz <matthias@blankertz.org>
2024-06-02 11:58:21 +02:00
b7c980b6eb Add flake8 CI checks
Signed-off-by: Matthias Blankertz <matthias@blankertz.org>
2024-06-02 11:58:21 +02:00