diff --git a/README.md b/README.md index 69638c6..60cb72c 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ In order to flash and run these programs on an STM32 device, you will need, in a * An STM32 device with support for USB connectivity via UART, such as the [STMicroelectronics](https://www.st.com) [Nucleo-F429ZI](https://www.st.com/en/evaluation-tools/nucleo-f429zi.html). (Some STM32 boards require an external adapter for UART connectivity) * Installation of the release of the AtomVM virtual machine image on the STM32 device. For information about how to install a release of the AtomVM virtual machine image on an STM32 device, see the AtomVM [Getting Started Guide](https://doc.atomvm.net/getting-started-guide.html) documentation. -* A USB cable to connect to UART and.or JTAG. (The [STM32F4Discovery](https://www.st.com/en/evaluation-tools/stm32f4discovery.html) needs two cables -- one for built in JTAG, and one for external UART, where as on the [Nucleo-F429ZI](https://www.st.com/en/evaluation-tools/nucleo-f429zi.html) board both UART and JTAG are presented on the one on-board usb connection). +* A USB cable to connect to UART and/or JTAG. (The [STM32F4Discovery](https://www.st.com/en/evaluation-tools/stm32f4discovery.html) needs two cables -- one for built in JTAG, and one for external UART, where as on the [Nucleo-F429ZI](https://www.st.com/en/evaluation-tools/nucleo-f429zi.html) board both UART and JTAG are presented on the one on-board usb connection). * The [st-flash](https://github.com/texane/stlink) flashing tool. * To use JTAG for flashing and console output debugging, you will need a [st-link v2](https://www.st.com/en/development-tools/st-link-v2.html) or [st-link v3](https://www.st.com/en/development-tools/stlink-v3set.html) device (typically already included on Nucleo and Discovery boards). * (Recommended) A serial console program, such as [`minicom`](https://en.wikipedia.org/wiki/Minicom). diff --git a/demos/morse_server/README.md b/demos/morse_server/README.md index c7f9126..f084abc 100644 --- a/demos/morse_server/README.md +++ b/demos/morse_server/README.md @@ -35,7 +35,7 @@ Your ESP can be reached with a web browser on port 8080 by its IP address or DHC "http://192.168.0.32:8080" or "http://atomvm-240ac458d278:8080" -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). ## Supported Platforms diff --git a/elixir/Blinky/README.md b/elixir/Blinky/README.md index 45400de..6ef9c6b 100644 --- a/elixir/Blinky/README.md +++ b/elixir/Blinky/README.md @@ -2,14 +2,14 @@ Welcome to the `Blinky` AtomVM application. -The `Blinky` AtomVM application will blink an LED attached to pin 2 on and off once every second. +The `Blinky` AtomVM application will blink an LED attached to pin 2 (`stm32` pin `{:b, 0}`) on and off once every second. -> Note. This example program only runs on the `esp32` and `stm32` platforms. +> Note. This example program only runs on the `esp32`,`stm32`, and `pico` platforms. -To run this example, connect a 1k ohm resistor in series with a 3.3v LED between IO pin 2 and GND. +To run this example, depending on how bright you want your led, connect a 220 ohm to 1k ohm resistor in series with a 3.3v LED between IO pin 2 and GND. +-----------+ - | | 1k ohm + | | 330 ohm | IO2 o--- \/\/\/\ ---+ | | resistor | | | | @@ -19,8 +19,12 @@ To run this example, connect a 1k ohm resistor in series with a 3.3v LED between +-----------+ LED ESP32 -> Note. Many ESP32 development boards already attach pin 2 to an on-board LED. +> ESP32 Note. Many ESP32 development boards already attach pin 2 to an on-board LED. -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +> STM32 Note. The Nucleo line of boards all have three leds on `{:b, [0, 7, 14]}`. + +> Pico-W Note. To use the onboard LED on a `picow` edit lib/Blinky.ex and comment out the current `@pin` definition (change to: `# @pin 2`), and uncomment the definition for the picow onboard LED `@pin` definition: `@pin {:wl, 0}`. + +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Elixir AtomVM example programs, see the Elixir example program [README](../README.md). diff --git a/elixir/Blinky/lib/Blinky.ex b/elixir/Blinky/lib/Blinky.ex index 8b51585..53fb110 100644 --- a/elixir/Blinky/lib/Blinky.ex +++ b/elixir/Blinky/lib/Blinky.ex @@ -19,11 +19,14 @@ # defmodule Blinky do + # Pin 2 works on any pico device with an external LED @pin 2 + # Comment out above and uncomment below to use Pico W onboard LED + # @pin {:wl, 0} def start() do - GPIO.set_pin_mode(@pin, :output) - loop(@pin, :low) + platform_gpio_setup() + loop(pin(), :low) end defp loop(pin, level) do @@ -40,4 +43,31 @@ defmodule Blinky do defp toggle(:low) do :high end + + defp pin() do + case :atomvm.platform() do + :esp32 -> 2 + :pico -> @pin + :stm32 -> {:b, [0]} + unsupported -> :erlang.exit({:unsupported_platform, unsupported}) + end + end + + defp platform_gpio_setup() do + case :atomvm.platform() do + :esp32 -> GPIO.set_pin_mode(pin(), :output) + :stm32 -> GPIO.set_pin_mode(pin(), :output) + :pico -> + case @pin do + {:wl, 0} -> :ok + pin -> + GPIO.init(pin) + GPIO.set_pin_mode(pin, :output) + end + unsupported -> + :io.format("Platform ~p is not supported.~n", [unsupported]) + :erlang.exit({:error, {:unsupported_platform, unsupported}}) + end + end + end diff --git a/elixir/HelloWorld/README.md b/elixir/HelloWorld/README.md index ea69f1d..1df69bd 100644 --- a/elixir/HelloWorld/README.md +++ b/elixir/HelloWorld/README.md @@ -4,6 +4,6 @@ Welcome to the `HelloWorld` AtomVM application. The `HelloWorld` AtomVM application prints "Hello World" to the console and then terminates. -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Elixir AtomVM example programs, see the Elixir example program [README](../README.md). diff --git a/elixir/LEDC_Example/README.md b/elixir/LEDC_Example/README.md index 8db9d3e..9323238 100644 --- a/elixir/LEDC_Example/README.md +++ b/elixir/LEDC_Example/README.md @@ -7,6 +7,6 @@ The `LEDC_Example` AtomVM application illustrates use of the AtomVM `LEDC` inter LEDs are wired to GPIO pins 4, 5, 18, and 19 and should use a resistor (minimum 100 Ohm up to 1K, 220 Ohm is a good choice). Change the number for the GPIO pins in the example if necessary. See the Blinky example for wiring if you are unsure. -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Erlang AtomVM example programs, see the Erlang example program [README](../README.md). diff --git a/elixir/README.md b/elixir/README.md index 7721c35..1bde9e1 100644 --- a/elixir/README.md +++ b/elixir/README.md @@ -9,10 +9,12 @@ Some example programs can only run on specific platform. The following table su | Example Program | esp32 | stm32 | Pico | Pico W | generic_unix | |-----------------|-------|-------|------|--------|--------------| -| Blinky | ✅ | ✅ | ❌ | ❌ | ❌ | +| Blinky | ✅ | ✅ | ✅ | ✦ | ❌ | | HelloWorld | ✅ | ✅ | ✅ | ✅ | ✅ | | LEDC_Example | ✅ | ❌ | ❌ | ❌ | ❌ | +✦ Works, but requires editing to use onboard LED, see the README in the examples directory. + To build and run an example in this directory, change your working directory to the corresponding example program, and execute the generic instructions below. > WARNING! The Elixir examples in this repository are currently under construction. They may not run or even compile. Stay tuned for updates! diff --git a/erlang/README.md b/erlang/README.md index 690266f..4e3b568 100644 --- a/erlang/README.md +++ b/erlang/README.md @@ -10,10 +10,10 @@ Some example programs can only run on specific platform. The following table su | Example Program | esp32 | stm32 | Pico | Pico W | generic_unix | |-----------------|-------|-------|----------------|------------------|--------------| | arepl_example | ✅ | ❌ | ❌ | ❌ | ✅ | -| blinky | ✅ | ❌ | ✅ | ❌ | ❌ | +| blinky | ✅ | ✅ | ✅ | ✦ | ❌ | | deep_sleep | ✅ | ❌ | ❌ | ❌ | ❌ | | esp_nvs | ✅ | ❌ | ❌ | ❌ | ❌ | -| gpio_interrupt | ✅ | ❌ | ❌ | ❌ | ❌ | +| gpio_interrupt | ✅ | ✅ | ❌ | ❌ | ❌ | | hello_world | ✅ | ✅ | ✅ | ✅ | ✅ | | http_server_example | ✅ | ❌ | ❌ | ❌ | ✅ | | i2c_example | ✅ | ❌ | ❌ | ❌ | ❌ | @@ -28,6 +28,8 @@ Some example programs can only run on specific platform. The following table su | udp_server | ✅ | ❌ | ❌ | ❌ | ✅ | | wifi | ✅ | ❌ | ❌ | ❌ | ❌ | +✦ Works, but requires editing to use onboard LED, see the README in the examples directory. + To build and run an example in this directory, change your working directory to the corresponding example program, and execute the generic instructions below. ## Generic Instructions diff --git a/erlang/arepl_example/README.md b/erlang/arepl_example/README.md index ead2f82..52e70ae 100644 --- a/erlang/arepl_example/README.md +++ b/erlang/arepl_example/README.md @@ -4,7 +4,7 @@ Welcome to the `arepl_example` AtomVM application. The `arepl_example` AtomVM application demonstrates the use of the `arepl` LISP interpreter. -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). ## Build and Run Instructions diff --git a/erlang/blinky/README.md b/erlang/blinky/README.md index 22d6b2f..9acb5ce 100644 --- a/erlang/blinky/README.md +++ b/erlang/blinky/README.md @@ -2,14 +2,14 @@ Welcome to the `blinky` AtomVM application. -The `blinky` AtomVM application will blink an LED attached to pin 2 on and off once every second. +The `blinky` AtomVM application will blink an LED attached to pin 2 (`stm32` pin `{b, 0}`) on and off once every second. -> Note. This example program only runs on the `esp32` and `stm32` platforms. +> Note. This example program only runs on the `esp32`, `stm32`, and `pico` platforms. -To run this example, connect a 1k ohm resistor in series with a 3.3v LED between IO pin 2 and GND. +To run this example, depending on how bright you want your led, connect a 220 ohm to 1k ohm resistor in series with a 3.3v LED between IO pin 2 and GND. +-----------+ - | | 1k ohm + | | 330 ohm | IO2 o--- \/\/\/\ ---+ | | resistor | | | | @@ -19,8 +19,12 @@ To run this example, connect a 1k ohm resistor in series with a 3.3v LED between +-----------+ LED ESP32 -> Note. Many ESP32 development boards already attach pin 2 to an on-board LED. +> ESP32 Note. Many ESP32 development boards already attach pin 2 to an on-board LED. -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +> STM32 Note. The Nucleo line of boards all have three LEDs on {b, [0, 7, 14]}. + +> Pico W Note. To use the onboard LED on a `picow` edit src/blinky.erl and comment out the current `PIN` definition (change to: `% -define(PIN, 2).`), and uncomment the definition for the `picow` onboard LED definition: `-define(PIN, {wl, 0}).` + +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Erlang AtomVM example programs, see the Erlang example program [README](../README.md). diff --git a/erlang/blinky/src/blinky.erl b/erlang/blinky/src/blinky.erl index 69086b6..8246c65 100644 --- a/erlang/blinky/src/blinky.erl +++ b/erlang/blinky/src/blinky.erl @@ -21,11 +21,14 @@ -module(blinky). -export([start/0]). +% External LED on pin 2 will work with all pico devices. -define(PIN, 2). +% Comment out above and uncomment the following line to use pico-w onboard LED. +% -define(PIN, {wl, 0}). start() -> - gpio:set_pin_mode(?PIN, output), - loop(?PIN, low). + platform_gpio_setup(atomvm:platform()), + loop(pin(), low). loop(Pin, Level) -> io:format("Setting pin ~p ~p~n", [Pin, Level]), @@ -37,3 +40,33 @@ toggle(high) -> low; toggle(low) -> high. + +pin() -> + case atomvm:platform() of + esp32 -> + 2; + pico -> + ?PIN; + stm32 -> + {b, 0}; + Platform -> + erlang:exit({unsupported_platform, Platform}) + end. + +platform_gpio_setup(esp32) -> + gpio:set_pin_mode(pin(), output); +platform_gpio_setup(stm32) -> + gpio:set_pin_mode(pin(), output); +platform_gpio_setup(pico) -> + case ?PIN of + {wl, 0} -> + % Pico-W needs no setup for extra "WL" pins + ok; + Pin -> + % Setup for Pico GPIO pins + gpio:init(Pin), + gpio:set_pin_mode(Pin, output) + end; +platform_gpio_setup(Platform) -> + io:format("Platform ~p is not supported.~n", [Platform]), + erlang:exit({error, {unsupported_platform, Platform}}). diff --git a/erlang/deep_sleep/README.md b/erlang/deep_sleep/README.md index 38c1872..77ddf30 100644 --- a/erlang/deep_sleep/README.md +++ b/erlang/deep_sleep/README.md @@ -4,6 +4,6 @@ Welcome to the `deep_sleep` AtomVM application. The `deep_sleep` AtomVM application will put the ESP32 device into low-power deep sleep for 10 seconds, wake up, and report the reset reason. In most cases this will be `esp_rst_deepsleep`, but the initial reset reason will be `esp_rst_poweron`, or if you reset the device manually during sleep. -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Erlang AtomVM example programs, see the Erlang example program [README](../README.md). diff --git a/erlang/esp_nvs/README.md b/erlang/esp_nvs/README.md index a1f9c69..6bba0c4 100644 --- a/erlang/esp_nvs/README.md +++ b/erlang/esp_nvs/README.md @@ -4,6 +4,6 @@ Welcome to the `esp_nvs` AtomVM application. The `esp_nvs` AtomVM application uses the ESP non-volatile storage to record the number of times the device has restarted. If the NVS storage has not been set for this application, it will be intialized with a count of 0. The device will then sleep for 10 seconds, and restart. After each restart, the number of restarts is incremented and stored in non-volatile storage. -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Erlang AtomVM example programs, see the Erlang example program [README](../README.md). diff --git a/erlang/gpio_interrupt/README.md b/erlang/gpio_interrupt/README.md index 15d9e3a..7dbee58 100644 --- a/erlang/gpio_interrupt/README.md +++ b/erlang/gpio_interrupt/README.md @@ -17,6 +17,6 @@ This application will wait in a loop for interrupt signals when GPIO pin 2 is ri Waiting for interrupt ... Interrupt on pin 2 Waiting for interrupt ... -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Erlang AtomVM example programs, see the Erlang example program [README](../README.md). diff --git a/erlang/gpio_interrupt/src/gpio_interrupt.erl b/erlang/gpio_interrupt/src/gpio_interrupt.erl index 1d63a68..e8ddbda 100644 --- a/erlang/gpio_interrupt/src/gpio_interrupt.erl +++ b/erlang/gpio_interrupt/src/gpio_interrupt.erl @@ -22,66 +22,12 @@ -export([start/0]). -% -define(OUTPUT_PIN, 2). -% -define(INPUT_PIN, 22). - -% start() -> -% case verify_platform(atomvm:platform()) of -% ok -> - -% gpio:set_pin_mode(?INPUT_PIN, input), -% gpio:set_pin_pull(?INPUT_PIN, down), -% GPIO = gpio:start(), -% gpio:set_int(GPIO, ?INPUT_PIN, rising), -% spawn(fun receive_interrupt/0), - -% gpio:set_pin_mode(?OUTPUT_PIN, output), -% loop(?OUTPUT_PIN, low); -% Error -> -% Error -% end. - -% loop(Pin, Level) -> -% io:format("Setting pin ~p ~p~n", [Pin, Level]), -% gpio:digital_write(Pin, Level), -% timer:sleep(1000), -% loop( -% Pin, -% case Level of -% low -> high; -% high -> low -% end -% ). - -% receive_interrupt() -> -% io:format("Waiting for interrupt ... "), -% receive -% {gpio_interrupt, Pin} -> -% io:format("Interrupt on pin ~p~n", [Pin]); -% X -> erlang:display(X) -% end, -% receive_interrupt(). - -% verify_platform(esp32) -> -% ok; -% verify_platform(stm32) -> -% ok; -% verify_platform(Platform) -> -% {error, {unsupported_platform, Platform}}. - --define(PIN, 2). - start() -> - case verify_platform(atomvm:platform()) of - ok -> - gpio:set_pin_mode(?PIN, input), - gpio:set_pin_pull(?PIN, down), - GPIO = gpio:start(), - gpio:set_int(GPIO, ?PIN, rising), - loop(); - Error -> - Error - end. + io:format("Testing gpio interrupt on pin ~p.~n", pin()), + GPIO = gpio:start(), + gpio:set_pin_mode(pin(), input), + gpio:set_int(GPIO, pin(), rising), + loop(). loop() -> io:format("Waiting for interrupt ... "), @@ -91,9 +37,12 @@ loop() -> end, loop(). -verify_platform(esp32) -> - ok; -verify_platform(stm32) -> - ok; -verify_platform(Platform) -> - {error, {unsupported_platform, Platform}}. +pin() -> + case atomvm:platform() of + esp32 -> + 0; + stm32 -> + {c, 13}; + Platform -> + erlang:exit({unsupported_platform, Platform}) + end. diff --git a/erlang/hello_world/README.md b/erlang/hello_world/README.md index 6232e01..b18021e 100644 --- a/erlang/hello_world/README.md +++ b/erlang/hello_world/README.md @@ -4,6 +4,6 @@ Welcome to the `hello_world` AtomVM application. The `hello_world` AtomVM application prints "Hello World" to the console and then terminates. -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Erlang AtomVM example programs, see the Erlang example program [README](../README.md). diff --git a/erlang/i2c_example/README.md b/erlang/i2c_example/README.md index 03a1809..d4b1128 100644 --- a/erlang/i2c_example/README.md +++ b/erlang/i2c_example/README.md @@ -4,6 +4,6 @@ Welcome to the `i2c_example` AtomVM application. The `i2c_example` AtomVM application demonstrates use of the `i2c` interface using the popular SHT3x temperature sensor. -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Erlang AtomVM example programs, see the Erlang example program [README](../README.md). diff --git a/erlang/ledc_example/README.md b/erlang/ledc_example/README.md index f0b7e36..b4b61ef 100644 --- a/erlang/ledc_example/README.md +++ b/erlang/ledc_example/README.md @@ -4,6 +4,6 @@ Welcome to the `ledc_example` AtomVM application. The `ledc_example` AtomVM application illustrates use of the AtomVM `ledc` interface. -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Erlang AtomVM example programs, see the Erlang example program [README](../README.md). diff --git a/erlang/read_priv/README.md b/erlang/read_priv/README.md index cf0e46f..35ef7fb 100644 --- a/erlang/read_priv/README.md +++ b/erlang/read_priv/README.md @@ -8,6 +8,6 @@ For this test, note the presence of the `favicon-32x32.png` in the `priv` direct <<-119,80,78,71,13,10,26,10,0,0,0,...>> -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Erlang AtomVM example programs, see the Erlang example program [README](../README.md). diff --git a/erlang/spi_example/README.md b/erlang/spi_example/README.md index 8efa5f7..a274162 100644 --- a/erlang/spi_example/README.md +++ b/erlang/spi_example/README.md @@ -4,6 +4,6 @@ Welcome to the `spi_example` AtomVM application. The `spi_example` AtomVM application demonstrates use of the `spi` interface with the popular Smetech SX127x LoRa modem. -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Erlang AtomVM example programs, see the Erlang example program [README](../README.md). diff --git a/erlang/system_info/README.md b/erlang/system_info/README.md index eaa1a65..e404258 100644 --- a/erlang/system_info/README.md +++ b/erlang/system_info/README.md @@ -10,7 +10,7 @@ For example, on the ESP32 platform, this program will output the following infor PlatformInfo: #{esp32_chip_info => {esp32,50,2,1},esp32_free_heap_size => 245816,esp32_largest_free_block => 116104,esp32_minimum_free_size => 242136,esp_idf_version => "v3.3.4-dirty"} ProcessInfo: [{<0.1.0>,[{heap_size,457},{stack_size,12},{message_queue_len,0},{memory,512}]}] -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). ## Supported Platforms diff --git a/erlang/tcp_client/README.md b/erlang/tcp_client/README.md index 8d0d3e4..28e79ed 100644 --- a/erlang/tcp_client/README.md +++ b/erlang/tcp_client/README.md @@ -24,7 +24,7 @@ If the TCP server is running on a separate host from the client application, you You can use the `tcp_server` example program to listen for TCP packets from your running application. Alternatively, you can use a program such as the [netcat](https://en.wikipedia.org/wiki/Netcat) utility to receive TCP packets from the command line. -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Erlang AtomVM example programs, see the Erlang example program [README](../README.md). diff --git a/erlang/tcp_server/README.md b/erlang/tcp_server/README.md index ab30f91..4848e74 100644 --- a/erlang/tcp_server/README.md +++ b/erlang/tcp_server/README.md @@ -22,7 +22,7 @@ For example: You can use the `tcp_client` example program to send TCP/IP packets to your running application. Alternatively, you can use a program such as the [netcat](https://en.wikipedia.org/wiki/Netcat) utility to send TCP packets from the command line. -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Erlang AtomVM example programs, see the Erlang example program [README](../README.md). diff --git a/erlang/uart_example/README.md b/erlang/uart_example/README.md index 573f2f9..0e8d0eb 100644 --- a/erlang/uart_example/README.md +++ b/erlang/uart_example/README.md @@ -4,6 +4,6 @@ Welcome to the `uart_example` AtomVM application. The `uart_example` AtomVM application demonstrates use of the `uart` interface. -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Erlang AtomVM example programs, see the Erlang example program [README](../README.md). diff --git a/erlang/udp_client/README.md b/erlang/udp_client/README.md index 93e49a2..d808ead 100644 --- a/erlang/udp_client/README.md +++ b/erlang/udp_client/README.md @@ -18,7 +18,7 @@ If the UDP server is running on a separate host from the client application, you You can use the `udp_server` example program to listen for UDP packets from your running application. Alternatively, you can use a program such as the [netcat](https://en.wikipedia.org/wiki/Netcat) utility to receive UDP packets from the command line. -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Erlang AtomVM example programs, see the Erlang example program [README](../README.md). diff --git a/erlang/udp_server/README.md b/erlang/udp_server/README.md index aa81040..f53d225 100644 --- a/erlang/udp_server/README.md +++ b/erlang/udp_server/README.md @@ -13,7 +13,7 @@ For example: You can use the `udp_client` example program to send UDP packets to your running application. Alternatively, you can use a program such as the [netcat](https://en.wikipedia.org/wiki/Netcat) utility to send UDP packets from the command line. -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Erlang AtomVM example programs, see the Erlang example program [README](../README.md). diff --git a/erlang/wifi/README.md b/erlang/wifi/README.md index b073e6e..b9468dc 100644 --- a/erlang/wifi/README.md +++ b/erlang/wifi/README.md @@ -4,7 +4,7 @@ Welcome to the `wifi` AtomVM application. The `wifi` AtomVM application demonstrates how to configure an ESP32 device for both Station (STA) and Access Point (AP) modes, allowing an ESP32 device to join an existing WiFi network or to serve as a WiFi access point for other devices. -For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://doc.atomvm.net/programmers-guide.html). +For more information about programming on the AtomVM platform, see the [AtomVM Programmers Guide](https://www.atomvm.net/doc/master/programmers-guide.html). For general information about building and executing Erlang AtomVM example programs, see the Erlang example program [README](../README.md).