From 4d5f8f874a346f5d5968c42e4f5e7d791fd6a0d6 Mon Sep 17 00:00:00 2001 From: Martin Krischik Date: Mon, 22 Jun 2026 11:10:16 +0200 Subject: [PATCH] Pi Ada Tutorial release 1.8.0 (#1982) Add pico_ada_c08_serial_communication and do full refresh for the older samples. --- .../pico_ada_c01_blink-1.8.0.toml | 64 +++++++++++++++++ .../pico_ada_c01_blink_e-1.8.0.toml | 72 +++++++++++++++++++ .../pico_ada_c01_blink_lt-1.8.0.toml | 72 +++++++++++++++++++ .../pico_ada_c02_button_and_led-1.8.0.toml | 67 +++++++++++++++++ .../pico_ada_c03_led_bar-1.8.0.toml | 72 +++++++++++++++++++ .../pico_ada_c04_pwm-1.8.0.toml | 70 ++++++++++++++++++ .../pico_ada_c05_rgb-1.8.0.toml | 68 ++++++++++++++++++ .../pico_ada_c06_neopixel-1.8.0.toml | 70 ++++++++++++++++++ .../pico_ada_c07_buzzer-1.8.0.toml | 70 ++++++++++++++++++ ...co_ada_c08_serial_communication-1.8.0.toml | 71 ++++++++++++++++++ 10 files changed, 696 insertions(+) create mode 100644 index/pi/pico_ada_c01_blink/pico_ada_c01_blink-1.8.0.toml create mode 100644 index/pi/pico_ada_c01_blink_e/pico_ada_c01_blink_e-1.8.0.toml create mode 100644 index/pi/pico_ada_c01_blink_lt/pico_ada_c01_blink_lt-1.8.0.toml create mode 100644 index/pi/pico_ada_c02_button_and_led/pico_ada_c02_button_and_led-1.8.0.toml create mode 100644 index/pi/pico_ada_c03_led_bar/pico_ada_c03_led_bar-1.8.0.toml create mode 100644 index/pi/pico_ada_c04_pwm/pico_ada_c04_pwm-1.8.0.toml create mode 100644 index/pi/pico_ada_c05_rgb/pico_ada_c05_rgb-1.8.0.toml create mode 100644 index/pi/pico_ada_c06_neopixel/pico_ada_c06_neopixel-1.8.0.toml create mode 100644 index/pi/pico_ada_c07_buzzer/pico_ada_c07_buzzer-1.8.0.toml create mode 100644 index/pi/pico_ada_c08_serial_communication/pico_ada_c08_serial_communication-1.8.0.toml diff --git a/index/pi/pico_ada_c01_blink/pico_ada_c01_blink-1.8.0.toml b/index/pi/pico_ada_c01_blink/pico_ada_c01_blink-1.8.0.toml new file mode 100644 index 00000000..3b7499de --- /dev/null +++ b/index/pi/pico_ada_c01_blink/pico_ada_c01_blink-1.8.0.toml @@ -0,0 +1,64 @@ +name = "pico_ada_c01_blink" +description = "Chapter 1: Blinking LEDs - Getting Started on the Raspberry Pi Pico" +long-description = """My first steps into Ada programming on the Pico: from Jeremy Grosser's classic +blink example through explicit pin control to using an external LED, plus thoughts on the elegant (but still +experimental) Ravenscar profile. + +Starting simple with LED blinking in Ada - internal LED, external LED with proper renaming, and a look at why Ravenscar +looks so clean (even if it's not quite ready for everyday use yet). + +Contained in Chapter 01 are: + +1. blink - Jeremy Grosser Ada sample +2. sketch_01_1_blink - Chapter 1.1 Blink internal LED +3. sketch_01_2_blink - Chapter 1.2 Blink external LED +""" +notes = """ +Read the full tutorial at [Chapter 1: Blinking LEDs - Getting Started with Ada on the Raspberry Pi +Pico](https://pi-ada-tutorial.sourceforge.io/pico_ada_c01_blink), [GNATdoc +documentation](https://pi-ada-tutorial.sourceforge.io/gnatdoc/pico_doc/), [SourceForge +repository](https://sourceforge.net/p/pi-ada-tutorial/code/ci/master/tree/pico_ada_c01_blink/) +""" +version = "1.8.0" +licenses = "GPL-3.0-or-later" +authors = ["Martin Krischik "] +maintainers = ["Martin Krischik "] +maintainers-logins = ["krischik"] +website = "https://pi-ada-tutorial.sourceforge.io/pico_ada_c01_blink" +tags = ["raspberry", "pi", "pico", "rp2040", "ada2022", "embedded"] +executables = [ + "blink", + "sketch_01_1_blink", + "sketch_01_2_blink" +] + +[build-switches] +"*".ada_version = ["-gnat2022"] +development.compile_checks = "Warnings" +development.contracts = "Yes" +development.runtime_checks = "Overflow" +release.compile_checks = "Warnings" +release.contracts = "No" +release.runtime_checks = "Default" +validation.compile_checks = "Warnings" +validation.contracts = "Yes" +validation.runtime_checks = "Everything" + +[[depends-on]] +pico_bsp = "^2.2" +pico_xbsp = "^1.8" + +[configuration.values] +pico_xbsp.Event_Log_Output = "uart" + +# vim: set textwidth=120 nowrap tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab : +# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff : +# vim: set spell spelllang=en_gb : + +[origin] +hashes = [ +"sha256:fafec550f6c3803c17da6f10c677bc576c4effb284943169465e87092aa4817d", +"sha512:a09a1084c894df4014a5213b73c571045505de4975b90a847f72c779cc1b5337218255ddaf0897bb68c31383d86ac16467353499f1229c8e3c4527d0b3519934", +] +url = "https://sourceforge.net/projects/pi-ada-tutorial/files/Alire/pico_ada_c01_blink-1.8.0.tgz" + diff --git a/index/pi/pico_ada_c01_blink_e/pico_ada_c01_blink_e-1.8.0.toml b/index/pi/pico_ada_c01_blink_e/pico_ada_c01_blink_e-1.8.0.toml new file mode 100644 index 00000000..4e93a8a8 --- /dev/null +++ b/index/pi/pico_ada_c01_blink_e/pico_ada_c01_blink_e-1.8.0.toml @@ -0,0 +1,72 @@ +name = "pico_ada_c01_blink_e" +description = "Chapter 1 Reloaded: Blinking LEDs on Both Cores" +long-description = """Blinking LEDs on Both Cores Updated Chapter 1 using the new embedded_rp2040 +runtime - now with proper multi-core support, Ada.Real_Time, and delay until for accurate, slippage-free LED blinking on +Raspberry Pi Pico. + +After quick community help, I rewrote Chapter 1 to use light tasking on both RP2040 cores. No more manual timers - +clean, precise dual-LED blinking with zero slippage. + +Contained in Chapter 01 reloaded are: + +1. blink - Jeremy Grosser Ada sample +2. sketch_01_1_blink - Chapter 1.1 Blink internal LED +3. sketch_01_2_blink - Chapter 1.2 Blink external LED +4. double_blink-main - double blink using both cores. + +Read the full tutorial at [Chapter 1 Reloaded: Dual-Core Light Tasking - Blinking LEDs on Both +Cores](https://pi-ada-tutorial.sourceforge.io/pico_ada_c01_blink_e), [GNATdoc +documentation](https://pi-ada-tutorial.sourceforge.io/gnatdoc/pico_doc/), [SourceForge +repository](https://sourceforge.net/p/pi-ada-tutorial/code/ci/master/tree/pico2_ada_c01_blink_lt/) +""" + +version = "1.8.0" +licenses = "GPL-3.0-or-later" +authors = ["Martin Krischik "] +maintainers = ["Martin Krischik "] +maintainers-logins = ["krischik"] +website = "https://pi-ada-tutorial.sourceforge.io/pico_ada_c01_blink_e" +tags = ["raspberry", "pi", "pico", "rp2040", "tasking", "light-tasking", "ada2022", "embedded"] +executables = [ + "blink", + "double_blink-main", + "sketch_01_1_blink", + "sketch_01_2_blink" +] + +[build-switches] +"*".ada_version = ["-gnat2022"] +development.compile_checks = "Warnings" +development.contracts = "Yes" +development.runtime_checks = "Overflow" +release.compile_checks = "Warnings" +release.contracts = "No" +release.runtime_checks = "Default" +validation.compile_checks = "Warnings" +validation.contracts = "Yes" +validation.runtime_checks = "Everything" + +[[depends-on]] +rp2040_hal = "^2.7.1" +pico_bsp = "^2.2" +pico_xbsp = "^1.8" +embedded_rp2040 = "^15.4" + +[configuration.values] +embedded_rp2040.Board = "rpi_pico" +embedded_rp2040.Max_CPUs = 2 +pico_xbsp.Variant = "tasking" +rp2040_hal.Interrupts = "bb_runtimes" +rp2040_hal.Use_Startup = false + +# vim: set textwidth=120 nowrap tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab : +# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff : +# vim: set spell spelllang=en_gb : + +[origin] +hashes = [ +"sha256:63b67f2fcc8d73aa407e13a1827d7308dbf2f3d367d6288bdff193ccd50893d0", +"sha512:2a213a60a95a2eb344bd799552782c11b2787e7d4c5c3b2fad5ae1e1c94356b772170870cf592abf65bde45100192ef092af4e9d1e19562ad872d07ef7e6280d", +] +url = "https://sourceforge.net/projects/pi-ada-tutorial/files/Alire/pico_ada_c01_blink_e-1.8.0.tgz" + diff --git a/index/pi/pico_ada_c01_blink_lt/pico_ada_c01_blink_lt-1.8.0.toml b/index/pi/pico_ada_c01_blink_lt/pico_ada_c01_blink_lt-1.8.0.toml new file mode 100644 index 00000000..6d279129 --- /dev/null +++ b/index/pi/pico_ada_c01_blink_lt/pico_ada_c01_blink_lt-1.8.0.toml @@ -0,0 +1,72 @@ +name = "pico_ada_c01_blink_lt" +description = "Chapter 1 Reloaded: Blinking LEDs on Both Cores" +long-description = """Blinking LEDs on Both Cores Updated Chapter 1 using the new light_tasking_rp2040 +runtime - now with proper multi-core support, Ada.Real_Time, and delay until for accurate, slippage-free LED blinking on +Raspberry Pi Pico. + +After quick community help, I rewrote Chapter 1 to use light tasking on both RP2040 cores. No more manual timers - +clean, precise dual-LED blinking with zero slippage. + +Contained in Chapter 01 reloaded are: + +1. blink - Jeremy Grosser Ada sample +2. sketch_01_1_blink - Chapter 1.1 Blink internal LED +3. sketch_01_2_blink - Chapter 1.2 Blink external LED +4. double_blink-main - double blink using both cores. + +Read the full tutorial at [Chapter 1 Reloaded: Dual-Core Light Tasking - Blinking LEDs on Both +Cores](https://pi-ada-tutorial.sourceforge.io/pico_ada_c01_blink_lt), [GNATdoc +documentation](https://pi-ada-tutorial.sourceforge.io/gnatdoc/pico_doc/), [SourceForge +repository](https://sourceforge.net/p/pi-ada-tutorial/code/ci/master/tree/pico2_ada_c01_blink_lt/) +""" + +version = "1.8.0" +licenses = "GPL-3.0-or-later" +authors = ["Martin Krischik "] +maintainers = ["Martin Krischik "] +maintainers-logins = ["krischik"] +website = "https://pi-ada-tutorial.sourceforge.io/pico_ada_c01_blink_lt" +tags = ["raspberry", "pi", "pico", "rp2040", "tasking", "light-tasking", "ada2022", "embedded"] +executables = [ + "blink", + "double_blink-main", + "sketch_01_1_blink", + "sketch_01_2_blink" +] + +[build-switches] +"*".ada_version = ["-gnat2022"] +development.compile_checks = "Warnings" +development.contracts = "Yes" +development.runtime_checks = "Overflow" +release.compile_checks = "Warnings" +release.contracts = "No" +release.runtime_checks = "Default" +validation.compile_checks = "Warnings" +validation.contracts = "Yes" +validation.runtime_checks = "Everything" + +[[depends-on]] +light_tasking_rp2040 = "^15.4" +pico_bsp = "^2.2" +pico_xbsp = "^1.8" +rp2040_hal = "^2.7.1" + +[configuration.values] +light_tasking_rp2040.Board = "rpi_pico" +light_tasking_rp2040.Max_CPUs = 2 +pico_xbsp.Variant = "tasking" +rp2040_hal.Interrupts = "bb_runtimes" +rp2040_hal.Use_Startup = false + +# vim: set textwidth=120 nowrap tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab : +# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff : +# vim: set spell spelllang=en_gb : + +[origin] +hashes = [ +"sha256:a9e2019b8ca3f4b921deeecaa4a0bd816383dab7a183c403c925395dd4783a75", +"sha512:29479274cb66dd145f377790199bd90b919858b7fbac48ff9d69012f02e1d8877c19d895128d855a91a11542118082796cd7d7793979266300e69d7337cad20f", +] +url = "https://sourceforge.net/projects/pi-ada-tutorial/files/Alire/pico_ada_c01_blink_lt-1.8.0.tgz" + diff --git a/index/pi/pico_ada_c02_button_and_led/pico_ada_c02_button_and_led-1.8.0.toml b/index/pi/pico_ada_c02_button_and_led/pico_ada_c02_button_and_led-1.8.0.toml new file mode 100644 index 00000000..004c730b --- /dev/null +++ b/index/pi/pico_ada_c02_button_and_led/pico_ada_c02_button_and_led-1.8.0.toml @@ -0,0 +1,67 @@ +name = "pico_ada_c02_button_and_led" +description = "Chapter 2 - Button controled LEDs" +long-description = """Controlling an LED with a button on the Raspberry Pi Pico using Ada - two simple +but useful interaction examples. + +In this chapter I combine a push button with an LED. We start with basic on/off control, then move to a toggle-style +table lamp with software debounce. + +Contained in Chapter 02 are: + +1. sketch_02_1_button_and_led - Chapter 2.1 Switch LED with Button +2. sketch_02_2_table_lamp - Chapter 2.2 Simple table lamp + +Read the full tutorial at [Chapter 2 - Button & +LED](https://pi-ada-tutorial.sourceforge.io/pico_ada_c02_button_and_led), [GNATdoc +documentation](https://pi-ada-tutorial.sourceforge.io/gnatdoc/pico_doc/), [SourceForge +repository](https://sourceforge.net/p/pi-ada-tutorial/code/ci/master/tree/pico_ada_c02_button_and_led/) +""" + +version = "1.8.0" +licenses = "GPL-3.0-or-later" +authors = ["Martin Krischik "] +maintainers = ["Martin Krischik "] +maintainers-logins = ["krischik"] +website = "https://pi-ada-tutorial.sourceforge.io/pico_ada_c02_button_and_led" +tags = ["raspberry", "pi", "pico", "rp2040", "tasking", "light-tasking", "ada2022", "embedded"] +executables = [ + "sketch_02_1_button_and_led", + "sketch_02_2_table_lamp" +] + +[build-switches] +"*".ada_version = ["-gnat2022"] +development.compile_checks = "Warnings" +development.contracts = "Yes" +development.runtime_checks = "Overflow" +release.compile_checks = "Warnings" +release.contracts = "No" +release.runtime_checks = "Default" +validation.compile_checks = "Warnings" +validation.contracts = "Yes" +validation.runtime_checks = "Everything" + +[[depends-on]] +rp2040_hal = "^2.7.1" +pico_bsp = "^2.2" +pico_xbsp = "^1.8" +light_tasking_rp2040 = "^15.4" + +[configuration.values] +light_tasking_rp2040.Board = "rpi_pico" +light_tasking_rp2040.Max_CPUs = 2 +pico_xbsp.Variant = "tasking" +rp2040_hal.Interrupts = "bb_runtimes" +rp2040_hal.Use_Startup = false + +# vim: set textwidth=120 nowrap tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab : +# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff : +# vim: set spell spelllang=en_gb : + +[origin] +hashes = [ +"sha256:de88eb38b8f3f5c4b2881f7e7470327bb6c02308d2776945065a4e802779fdd1", +"sha512:694c69e664c8d8bd4ed4bff9fb0d89447354076a43e597092066e281100fad93caf80405701246e7e7df502d936008797d524c29bd43c3ccc6c28b9bde136f91", +] +url = "https://sourceforge.net/projects/pi-ada-tutorial/files/Alire/pico_ada_c02_button_and_led-1.8.0.tgz" + diff --git a/index/pi/pico_ada_c03_led_bar/pico_ada_c03_led_bar-1.8.0.toml b/index/pi/pico_ada_c03_led_bar/pico_ada_c03_led_bar-1.8.0.toml new file mode 100644 index 00000000..4d67d629 --- /dev/null +++ b/index/pi/pico_ada_c03_led_bar/pico_ada_c03_led_bar-1.8.0.toml @@ -0,0 +1,72 @@ +name = "pico_ada_c03_led_bar" +description = "Chapter 3 - Cylon LED Bar: flowing light upgraded to a menacing scanner" +long-description = """Building a smooth flowing LED bar on the Raspberry Pi Pico with Ada - from a simple +chasing light to a proper menacing Cylon scanner effect using real-time delays. + +In this chapter we turn ten LEDs into a flowing light bar. We start with the basic Freenove example using an array of +RP.GPIO.GPIO_Point (aliased limited tagged types). We then improve it with a pre-calculated sine-harmonic timing table +to create a realistic Cylon scanner - all done with Ada.Real_Time and zero floating-point at runtime for perfect +jitter-free movement. + +Contained in Chapter 03 are: + +1. Sketch_03_1_Flowing_Light - straight port of the classic flowing light +2. Cylon_Light - the final dramatic Cylon scanner with organic easing +3. Cylon_Light_Float - Floating point version of Cylon_Light + +Read the full tutorial at [Chapter 3 - Cylon LED Bar: flowing light upgraded to a menacing +scanner](https://pi-ada-tutorial.sourceforge.io/pico_ada_c03_led_bar), [GNATdoc +documentation](https://pi-ada-tutorial.sourceforge.io/gnatdoc/pico_doc/), [SourceForge +repository](https://sourceforge.net/p/pi-ada-tutorial/code/ci/master/tree/pico_ada_c03_led_bar/) + +(The Cylons did nothing wrong. Humans created the perfect companion species and then completely messed it up.) +""" +version = "1.8.0" +licenses = "GPL-3.0-or-later" +authors = ["Martin Krischik "] +maintainers = ["Martin Krischik "] +maintainers-logins = ["krischik"] +website = "https://pi-ada-tutorial.sourceforge.io/pico_ada_c03_led_bar" +tags = ["raspberry", "pi", "pico", "rp2040", "tasking", "light-tasking", "ada2022", "embedded"] +executables = [ + "sketch_03_1_flowing_light", + "cylon_light_float", + "cylon_light" +] + +[build-switches] +"*".ada_version = ["-gnat2022"] +development.compile_checks = "Warnings" +development.contracts = "Yes" +development.runtime_checks = "Overflow" +release.compile_checks = "Warnings" +release.contracts = "No" +release.runtime_checks = "Default" +validation.compile_checks = "Warnings" +validation.contracts = "Yes" +validation.runtime_checks = "Everything" + +[[depends-on]] +rp2040_hal = "^2.7.1" +pico_bsp = "^2.2" +pico_xbsp = "^1.8" +light_tasking_rp2040 = "^15.4" + +[configuration.values] +light_tasking_rp2040.Board = "rpi_pico" +light_tasking_rp2040.Max_CPUs = 2 +pico_xbsp.Variant = "tasking" +rp2040_hal.Interrupts = "bb_runtimes" +rp2040_hal.Use_Startup = false + +# vim: set textwidth=120 nowrap tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab : +# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff : +# vim: set spell spelllang=en_gb : + +[origin] +hashes = [ +"sha256:c3f59a4f81cd5361618b3db1ebc2e4b47226f60f3d3ce3b983cea9061efde9ce", +"sha512:48c291835ec6f507c3f8571c14d82ecddb9b768695a89d366555e1557fafb30e8af37bb5778a203f131b37042d826446ac49f3d052718ad5497e219062306509", +] +url = "https://sourceforge.net/projects/pi-ada-tutorial/files/Alire/pico_ada_c03_led_bar-1.8.0.tgz" + diff --git a/index/pi/pico_ada_c04_pwm/pico_ada_c04_pwm-1.8.0.toml b/index/pi/pico_ada_c04_pwm/pico_ada_c04_pwm-1.8.0.toml new file mode 100644 index 00000000..bbae5aba --- /dev/null +++ b/index/pi/pico_ada_c04_pwm/pico_ada_c04_pwm-1.8.0.toml @@ -0,0 +1,70 @@ +name = "pico_ada_c04_pwm" +description = "Chapter 4: Analog LED with PWM" +long-description = """Building smooth breathing LEDs and flowing light bars with hardware PWM on the +Raspberry Pi Pico using Ada. From jittery duty cycles to perfect linear dimming - guided by the Voltcraft MSO-5102B +oscilloscope and a deep dive into PWM slice mapping on both Pico 1 and Pico 2. + +In this chapter we create a reusable Pico.Analog package for PWM-based analogue output. We start with a classic +breathing light, then move on to a flowing light bar. Along the way the MSO-5102B reveals the real behaviour of our +code, and we discover (and fix) a subtle bug in the experimental RP2350 HAL. + +Contained in Chapter 04 are: + +1. Pwm - Original PWM sample from Jeremy Grosser +2. sketch_04_1_breathing_light - Chapter 4.1 Blink internal LED +3. sketch_04_2_flowing_light_2 - Chapter 4.1 Project Meteor Flowing Light + +Read the full tutorial at [Chapter 4: Analog & PWM](https://pi-ada-tutorial.sourceforge.io/pico_ada_c04_pwm), [GNATdoc +documentation](https://pi-ada-tutorial.sourceforge.io/gnatdoc/pico_doc/), [SourceForge +repository](https://sourceforge.net/p/pi-ada-tutorial/code/ci/master/tree/pico_ada_c04_pwm/) +""" + +version = "1.8.0" +licenses = "GPL-3.0-or-later" +authors = ["Martin Krischik "] +maintainers = ["Martin Krischik "] +maintainers-logins = ["krischik"] +website = "https://pi-ada-tutorial.sourceforge.io/pico_ada_c04_pwm" +tags = ["raspberry", "pi", "pico", "rp2040", "tasking", "light-tasking", "ada2022", "embedded"] +executables = [ + "pwm", + "sketch_04_1_breathing_light", + "sketch_04_2_flowing_light_2" +] + +[build-switches] +"*".ada_version = ["-gnat2022"] +development.compile_checks = "Warnings" +development.contracts = "Yes" +development.runtime_checks = "Overflow" +release.compile_checks = "Warnings" +release.contracts = "No" +release.runtime_checks = "Default" +validation.compile_checks = "Warnings" +validation.contracts = "Yes" +validation.runtime_checks = "Everything" + +[[depends-on]] +rp2040_hal = "^2.7.1" +pico_bsp = "^2.2" +pico_xbsp = "^1.8" +light_tasking_rp2040 = "^15.4" + +[configuration.values] +light_tasking_rp2040.Board = "rpi_pico" +light_tasking_rp2040.Max_CPUs = 2 +pico_xbsp.Variant = "tasking" +rp2040_hal.Interrupts = "bb_runtimes" +rp2040_hal.Use_Startup = false + +# vim: set textwidth=120 nowrap tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab : +# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff : +# vim: set spell spelllang=en_gb : + +[origin] +hashes = [ +"sha256:7475a1314ae669aeefe9a0d4f5917a6ad051e5960420813cdfd7c04d0b15cf29", +"sha512:a98e0cf3b1ab424be02bd5f8b3442e9621bf42346c0c2978ab504a3b17a106e55d8b59e117a02318239dec4850d626c864cbb6af25df2ca3d9290742ee470b53", +] +url = "https://sourceforge.net/projects/pi-ada-tutorial/files/Alire/pico_ada_c04_pwm-1.8.0.tgz" + diff --git a/index/pi/pico_ada_c05_rgb/pico_ada_c05_rgb-1.8.0.toml b/index/pi/pico_ada_c05_rgb/pico_ada_c05_rgb-1.8.0.toml new file mode 100644 index 00000000..0ddf950d --- /dev/null +++ b/index/pi/pico_ada_c05_rgb/pico_ada_c05_rgb-1.8.0.toml @@ -0,0 +1,68 @@ +name = "pico_ada_c05_rgb" +description = "Chapter 5: Controlling an RGB LED with PWM" +long-description = """Learn how to drive a common-cathode RGB LED using the RP2040's PWM peripherals. +This chapter introduces a reusable Ada package for colour control and demonstrates both random colours and a smooth +colour-wheel gradient. + +Extend the simple LED examples to full-colour control with an RGB LED. Create a reusable `Pico.Analog.RGB_LED` package +and explore two sketches: random colours (using the embedded runtime) and a smooth colour-wheel transition. + +Contained in Chapter 05 are: + +2. sketch_05_1_random_color_light.adb - Chapter 5.1 Random Color Light +3. sketch_05_2_gradient_color_light.adb - Chapter 5.2 Gradient Color Light + +Read the full tutorial at [Chapter 5: Controlling an RGB LED with +PWM](https://pi-ada-tutorial.sourceforge.io/pico_ada_c05_rgb), [GNATdoc +documentation](https://pi-ada-tutorial.sourceforge.io/gnatdoc/pico_doc/), [SourceForge +repository](https://sourceforge.net/p/pi-ada-tutorial/code/ci/master/tree/pico_ada_c05_rgb/) +""" + +version = "1.8.0" +licenses = "GPL-3.0-or-later" +authors = ["Martin Krischik "] +maintainers = ["Martin Krischik "] +maintainers-logins = ["krischik"] +website = "https://pi-ada-tutorial.sourceforge.io/pico_ada_c05_rgb" +tags = ["raspberry", "pi", "pico", "rp2040", "tasking", "light-tasking", "ada2022", "embedded"] +executables = [ + "sketch_05_1_random_color_light", + "sketch_05_2_gradient_color_light" +] + +[build-switches] +"*".ada_version = ["-gnat2022"] +development.compile_checks = "Warnings" +development.contracts = "Yes" +development.runtime_checks = "Overflow" +release.compile_checks = "Warnings" +release.contracts = "No" +release.runtime_checks = "Default" +validation.compile_checks = "Warnings" +validation.contracts = "Yes" +validation.runtime_checks = "Everything" + +[[depends-on]] +rp2040_hal = "^2.7.1" +pico_bsp = "^2.2" +pico_xbsp = "^1.8" +embedded_rp2040 = "^15.4" + +[configuration.values] +embedded_rp2040.Board = "rpi_pico" +embedded_rp2040.Max_CPUs = 2 +pico_xbsp.Variant = "tasking" +rp2040_hal.Interrupts = "bb_runtimes" +rp2040_hal.Use_Startup = false + +# vim: set textwidth=120 nowrap tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab : +# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff : +# vim: set spell spelllang=en_gb : + +[origin] +hashes = [ +"sha256:d1bdc090172ad819906d2bdd653c43af3635b1137f4c39f9a9d796780afdb419", +"sha512:1effc8df15013b91cef36a3c5b5f39b60024a3ba257fbe582179081e3f4419809b6b2aae2e6120ba2fe2c33a9926cd8ca28ac737b00948115453bf442668ae0c", +] +url = "https://sourceforge.net/projects/pi-ada-tutorial/files/Alire/pico_ada_c05_rgb-1.8.0.tgz" + diff --git a/index/pi/pico_ada_c06_neopixel/pico_ada_c06_neopixel-1.8.0.toml b/index/pi/pico_ada_c06_neopixel/pico_ada_c06_neopixel-1.8.0.toml new file mode 100644 index 00000000..262134bf --- /dev/null +++ b/index/pi/pico_ada_c06_neopixel/pico_ada_c06_neopixel-1.8.0.toml @@ -0,0 +1,70 @@ +name = "pico_ada_c06_neopixel" +description = "Chapter 6: Controlling 8 NeoPixel RGB LED" +long-description = """Learn how to drive WS2812 (NeoPixel) LEDs on the Raspberry Pi Pico using the RP2040 +PIO in Ada. Includes a square-wave diagnostic, fixes for the official ws2812_demo, and two complete animation sketches. + +From understanding the WS2812 protocol to writing our own PIO code and creating colourful animations - everything you +need to make NeoPixels dance with Ada on the Pico. + +Contained in Chapter 06 are: + +1. square_wave-main.adb - Simple Square Wave test using PIO (for timing reference) +1. ws2812_demo.adb - Jeremy Grosser's WS2812 demo adapted for the RP2040 and Ada 2022 +2. sketch_06_1_led_pixel.adb - Chapter 6.1 NeoPixel LED Pixel +3. sketch_06_2_rainbow_light.adb - Chapter 6.2 NeoPixel Rainbow Light + +Read the full tutorial at [Chapter 6: Controlling an NeoPixel LED with +PWM](https://pi-ada-tutorial.sourceforge.io/pico_ada_c06_neopixel), [GNATdoc +documentation](https://pi-ada-tutorial.sourceforge.io/gnatdoc/pico_doc/), [SourceForge +repository](https://sourceforge.net/p/pi-ada-tutorial/code/ci/master/tree/pico_ada_c06_neopixel/) +""" +version = "1.8.0" +licenses = "GPL-3.0-or-later" +authors = ["Martin Krischik "] +maintainers = ["Martin Krischik "] +maintainers-logins = ["krischik"] +website = "https://pi-ada-tutorial.sourceforge.io/pico_ada_c06_neopixel" +tags = ["raspberry", "pi", "pico", "rp2040", "tasking", "light-tasking", "ada2022", "embedded"] +executables = [ + "square_wave-main", + "ws2812_demo", + "sketch_06_1_led_pixel", + "sketch_06_2_rainbow_light" +] + +[build-switches] +"*".ada_version = ["-gnat2022"] +development.compile_checks = "Warnings" +development.contracts = "Yes" +development.runtime_checks = "Overflow" +release.compile_checks = "Warnings" +release.contracts = "No" +release.runtime_checks = "Default" +validation.compile_checks = "Warnings" +validation.contracts = "Yes" +validation.runtime_checks = "Everything" + +[[depends-on]] +rp2040_hal = "^2.7.1" +pico_bsp = "^2.2" +pico_xbsp = "^1.8" +light_tasking_rp2040 = "^15.4" + +[configuration.values] +light_tasking_rp2040.Board = "rpi_pico" +light_tasking_rp2040.Max_CPUs = 2 +pico_xbsp.Variant = "tasking" +rp2040_hal.Interrupts = "bb_runtimes" +rp2040_hal.Use_Startup = false + +# vim: set textwidth=120 nowrap tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab : +# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff : +# vim: set spell spelllang=en_gb : + +[origin] +hashes = [ +"sha256:a366fe30b23bfc67dcf10629f032cb28593cdadda0fef7465f0599a135157f66", +"sha512:8fa1997c7bdf3906f4b8ad6a8653bd4f2f281b107d56307dbd3a11d0895bf6d674eb3dbdb8159d053ddbcb69bfbf2e261ace0ac84081546d5276556cadaa1690", +] +url = "https://sourceforge.net/projects/pi-ada-tutorial/files/Alire/pico_ada_c06_neopixel-1.8.0.tgz" + diff --git a/index/pi/pico_ada_c07_buzzer/pico_ada_c07_buzzer-1.8.0.toml b/index/pi/pico_ada_c07_buzzer/pico_ada_c07_buzzer-1.8.0.toml new file mode 100644 index 00000000..ac3f7c20 --- /dev/null +++ b/index/pi/pico_ada_c07_buzzer/pico_ada_c07_buzzer-1.8.0.toml @@ -0,0 +1,70 @@ +name = "pico_ada_c07_buzzer" +description = "Chapter 7: Controlling active and passive Buzzer" +long-description = """Learn how to drive active and passive buzzers with the Raspberry Pi Pico using Ada. +From simple doorbell switches to PWM-generated sweeping alert tones - including hardware tips with flyback diodes and +oscilloscope measurements. + +In this chapter we connect both active and passive buzzers to the Pico. We start with a simple button-controlled +doorbell, improve the passive buzzer with bit-banging, and finally create a clean sweeping alert tone using the Pico's +PWM hardware. We also look at inductive-load protection and why a diode is essential. + +Contained in Chapter 07 are: + +1. sketch_07_1_doorbell.adb - Chapter 7.1 Doorbell with active buzzer +2. sketch_07_2_alert.adb - Chapter 7.2 Alert with passive buzzer +3. pwm_alert.adb - Use PWM to drive an passive buzzer +4. buzz_and_blink-main.adb - Use tasks to drive both a buzzer and an LED + +Read the full tutorial at [Chapter 7: Controlling a Buzzer](https://pi-ada-tutorial.sourceforge.io/pico_ada_c07_buzzer), [GNATdoc +documentation](https://pi-ada-tutorial.sourceforge.io/gnatdoc/pico_doc/), [SourceForge +repository](https://sourceforge.net/p/pi-ada-tutorial/code/ci/master/tree/pico_ada_c07_buzzer/) +""" +version = "1.8.0" +licenses = "GPL-3.0-or-later" +authors = ["Martin Krischik "] +maintainers = ["Martin Krischik "] +maintainers-logins = ["krischik"] +website = "https://pi-ada-tutorial.sourceforge.io/pico_ada_c07_buzzer" +tags = ["raspberry", "pi", "pico", "rp2040", "tasking", "light-tasking", "ada2022", "embedded"] +executables = [ + "buzz_and_blink-main", + "pwm_alert", + "sketch_07_1_doorbell", + "sketch_07_2_alert"] + +[build-switches] +"*".ada_version = ["-gnat2022"] +development.compile_checks = "Warnings" +development.contracts = "Yes" +development.runtime_checks = "Overflow" +release.compile_checks = "Warnings" +release.contracts = "No" +release.runtime_checks = "Default" +validation.compile_checks = "Warnings" +validation.contracts = "Yes" +validation.runtime_checks = "Everything" + +[[depends-on]] +rp2040_hal = "^2.7.1" +pico_bsp = "^2.2" +pico_xbsp = "^1.8" +embedded_rp2040 = "^15.4" + +[configuration.values] +embedded_rp2040.Board = "rpi_pico" +embedded_rp2040.Max_CPUs = 2 +pico_xbsp.Variant = "tasking" +rp2040_hal.Interrupts = "bb_runtimes" +rp2040_hal.Use_Startup = false + +# vim: set textwidth=120 nowrap tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab : +# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff : +# vim: set spell spelllang=en_gb : + +[origin] +hashes = [ +"sha256:59471c77782092b301fd1e8526893cab949d57f4da618b50718b908586f180f5", +"sha512:0b2248d3575a9c46f9c21b665076b68c2e05d759f7ecd9a6471c64dbf2729a30124b99aa3a5da80213c4c7805b7e4980fcb2f24c3b0d61294932d4f9410bc8c6", +] +url = "https://sourceforge.net/projects/pi-ada-tutorial/files/Alire/pico_ada_c07_buzzer-1.8.0.tgz" + diff --git a/index/pi/pico_ada_c08_serial_communication/pico_ada_c08_serial_communication-1.8.0.toml b/index/pi/pico_ada_c08_serial_communication/pico_ada_c08_serial_communication-1.8.0.toml new file mode 100644 index 00000000..56da11c0 --- /dev/null +++ b/index/pi/pico_ada_c08_serial_communication/pico_ada_c08_serial_communication-1.8.0.toml @@ -0,0 +1,71 @@ +name = "pico_ada_c08_serial_communication" +description = "Chapter 7: Controlling active and passive Buzzer" +long-description = """Learn how to drive active and passive buzzers with the Raspberry Pi Pico using Ada. +From simple doorbell switches to PWM-generated sweeping alert tones - including hardware tips with flyback diodes and +oscilloscope measurements. + +In this chapter we connect both active and passive buzzers to the Pico. We start with a simple button-controlled +doorbell, improve the passive buzzer with bit-banging, and finally create a clean sweeping alert tone using the Pico's +PWM hardware. We also look at inductive-load protection and why a diode is essential. + +Contained in Chapter 07 are: + +1. sketch_08_1_serial_print.adb - Chapter 8.1 Doorbell with active buzzer +2. sketch_08_2_serial_rw.adb - Chapter 8.2 Alert with passive buzzer + +Read the full tutorial at [Chapter 7: Controlling a Buzzer](https://pi-ada-tutorial.sourceforge.io/pico_ada_c08_serial_communication), [GNATdoc +documentation](https://pi-ada-tutorial.sourceforge.io/gnatdoc/pico_doc/), [SourceForge +repository](https://sourceforge.net/p/pi-ada-tutorial/code/ci/master/tree/pico_ada_c08_serial_communication/) +""" +version = "1.8.0" +licenses = "GPL-3.0-or-later" +authors = ["Martin Krischik "] +maintainers = ["Martin Krischik "] +maintainers-logins = ["krischik"] +website = "https://pi-ada-tutorial.sourceforge.io/pico_ada_c08_serial_communication" +tags = ["raspberry", "pi", "pico", "rp2040", "tasking", "light-tasking", "ada2022", "embedded"] +executables = [ + "sketch_08_1_serial_print", + "sketch_08_2_serial_rw"] + +[build-switches] +"*".ada_version = ["-gnat2022"] +development.compile_checks = "Warnings" +development.contracts = "Yes" +development.runtime_checks = "Overflow" +release.compile_checks = "Warnings" +release.contracts = "No" +release.runtime_checks = "Default" +validation.compile_checks = "Warnings" +validation.contracts = "Yes" +validation.runtime_checks = "Everything" + +[[depends-on]] +embedded_rp2040 = "^15.4" +pico_bsp = "^2.2" +pico_xbsp = "^1.8" +rp2040_hal = "^2.7.1" + +[configuration.values] +adacl_embedded.Event_Log_Buffer_Size = 0 +adacl_embedded.Variant = "no_tasking" +embedded_rp2040.Board = "rpi_pico" +embedded_rp2040.Max_CPUs = 2 +pico_xbsp.Variant = "tasking" +rp2040_hal.Interrupts = "bb_runtimes" +rp2040_hal.Use_Startup = false +usb_embedded.Event_Log_Buffer_Size = 0 +usb_embedded.Log_Verbose = false + + +# vim: set textwidth=120 nowrap tabstop=8 shiftwidth=4 softtabstop=4 noexpandtab : +# vim: set filetype=toml fileencoding=utf-8 fileformat=unix foldmethod=diff : +# vim: set spell spelllang=en_gb : + +[origin] +hashes = [ +"sha256:149abc1746c734cc7e4024e6358eef2c4730ba9b22333ef5345775250862d263", +"sha512:8fcb433e6ee3ff0d55f8bc746d6d7a515f1e476d05523e3a61144fa72de16962181034c421281a6324b2b7f67eb39e348d8ac71dbafc0390fc0421c8ff63cbf0", +] +url = "https://sourceforge.net/projects/pi-ada-tutorial/files/Alire/pico_ada_c08_serial_communication-1.8.0.tgz" +