# New Tutorial Chapter: Serial Communication on the Raspberry Pi Pico with Ada\*

**URL:** <https://forum.ada-lang.io/t/new-tutorial-chapter-serial-communication-on-the-raspberry-pi-pico-with-ada/4511>\
**Category:** Releases\
**Tags:** pi-pico, raspberry, usb, uart, swd\
**Created:** [June 19, 2026, 5:38pm UTC](https://forum.ada-lang.io/t/new-tutorial-chapter-serial-communication-on-the-raspberry-pi-pico-with-ada/4511 "2026-06-19T17:38:21Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![krischik](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/krischik/32/420_2.png) [@krischik](https://forum.ada-lang.io/u/krischik)\
**Post date:** [June 19, 2026, 5:38pm UTC](https://forum.ada-lang.io/t/new-tutorial-chapter-serial-communication-on-the-raspberry-pi-pico-with-ada/4511/1 "2026-06-19T17:38:22Z")

</div>

Hello everyone,

I have just published **Chapter 8 – Serial Communication** for the [Pi Ada Tutorial](https://pi-ada-tutorial.sourceforge.io).

In this chapter I explore all three practical ways to do serial output and input on the Pico:

- SWD + Semihosting (the method used by `Ada.Text_IO`)
- Classic UART with level shifting
- USB CDC-ACM

I also provide two complete example programs (`Sketch_08_1_Serial_Print` and `Sketch_08_2_Serial_Read_and_Write`) that demonstrate all three methods working together, plus my supporting packages `Pico.UART_IO`, `Pico.USB_IO` and `Pico.Debug_IO`.

This chapter turned out to be **a lot more work than I initially expected**. I wanted to give readers real choices, so I implemented and tested all three options in depth. The USB CDC-ACM part in particular became quite involved once I started transferring more than 64 bytes at a time — proper buffer handling and retry logic were necessary to get reliable performance.

You can find the full chapter here:

> **[8. Chapter Serial Communication](https://pi-ada-tutorial.sourceforge.io/pico_ada_c08_serial_communication/)**
>
> Learn three different ways to perform serial communication with the Raspberry Pi Pico using Ada — SWD semihosting, UART and USB CDC-ACM.

The corresponding Alire crate will soon be available as well:  
`pico_ada_c08_serial_communication`

As always, feedback and suggestions are very welcome!

Best regards,  
Martin Krischik
