Commit graph

3511 commits

Author SHA1 Message Date
raiden00pl
f1e7b143d9 !drivers: separate pulse count feature from PWM driver
BREAKING CHANGE: separate pulse count feature from PWM driver.

Coupling PWM driver with pulse count feature was bad decision from the beginning,
these are two different things:

- PWM is a modulation scheme: it continuously represents a value by varying duty
cycle, usually at a fixed frequency.
- Pulse train generation is a finite waveform transaction: generate N edges/pulses
with selected timing, then complete.

This change introduce a new pulse count driver with new API.
Now user can generate pulse train by providing:

- high pulse length in ns
- low pulse length in ns
- pulse count

All architectures supporting pulse count have been adapted in subsequent commits.
Users must migrate their code to use the new driver with new API.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-25 14:33:11 +02:00
Lup Yuen Lee
c2de12153f Dockerfile & Docs: Change bitbucket.org/nuttx/tools to github.com
The repo bitbucket.org/nuttx/tools is no longer available. This PR changes it to to github.com/patacongo/tools, as explained in https://github.com/apache/nuttx/pull/18890. This PR updates the URL in Dockerfile and Docs.

Signed-off-by: Lup Yuen Lee <luppy@appkaki.com>
2026-05-25 08:34:45 -03:00
Michal Lenc
aca5b6533e documentation/pwm: update to reflect the latest API changes
Commit 4df80e19 removed CONFIG_PWM_MULTICHAN option and changed
the API. Update the documentation to reflect this change.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2026-05-24 15:02:09 +02:00
Arjav Patel
0eda74c478 doc/system: Add documentation for micro-ROS integration.
Add minimal documentation of micro-ROS integration to the system
applications category, covering the library skeleton structure and
Kconfig options. This document provides baseline context for the
foundational library layout in apps/system/microros/.
2026-05-24 09:10:01 +08:00
Tiago Medicci Serrano
144cfecc9a Documentation: Add entry for Python on ESP32-P4
Add entries related to the Python interpreter for ESP32-P4.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-05-23 09:35:16 -03:00
ImBonkers
5993ed41aa Documentation/arm: Document Nucleo-N657X0-Q LED support.
Update the Nucleo-N657X0-Q board page to reflect the autoleds and
userleds support added in the preceding commits:

* Drop "user LEDs" from the "not yet wired up" warning list (only
  the user button remains there).
* Replace the placeholder "no userleds/buttons drivers" paragraph in
  the Buttons and LEDs section with a description of the two
  mutually-exclusive paths (ARCH_LEDS vs USERLED) and a pointer to
  the new nucleo-n657x0-q:leds configuration.
* Add a leds entry under Configurations.

Signed-off-by: ImBonkers <samuelnlinden@pm.me>
2026-05-23 20:23:35 +08:00
Jiri Vlasak
7065266c0c doc/audioutils: Add rtttl-c documentation
Add documentation about rtttl-c, a simple RTTTL parsing library.

Signed-off-by: Jiri Vlasak <jvlasak@elektroline.cz>
2026-05-21 23:12:05 -04:00
Matteo Golin
a50614512c docs/raspberrypi-4b: Document new SMP configuration
Documents the new SMP configuration.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-22 06:45:10 +08:00
hanzhijian
2b670b83ae Documentation: add candump application documentation
Signed-off-by: hanzhijian <hanzhijian@zepp.com>
2026-05-22 00:43:01 +08:00
hanzhijian
41cd6eb16d Documentation/uorb: Fix command references in uORB docs.
Align the uORB application documentation with the actual command names, source layout, and configuration options in apps/system/uorb.

This updates the page to describe both uorb_listener and uorb_generator, uses the registered NSH command names in usage examples, and documents the listener and generator options to match the current implementation.

It also adds the relevant Kconfig enablement notes so the documented commands are easier to find and use.

Tested with:
- make html SPHINXOPTS="-W" -j

Signed-off-by: hanzhijian <hanzhijian@zepp.com>
2026-05-22 00:42:48 +08:00
Eren Terzioglu
50352c5b75 Docs/platforms/risc-v: Add Analog Comparator docs for esp32[-h2|-p4]
Add Analog Comparator docs for esp32h2 and esp32p4

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2026-05-21 09:38:58 -04:00
Peter Barada
2230d32595 Documentation/nucleo-h753zi: Add board image
Add missing NUCLEO-H753ZI board image.

Signed-off-by: Peter Barada <peter.barada@gmail.com>
2026-05-21 08:56:24 +02:00
Peter Barada
1840cbe63d Documentation/nucleo-h753zi: Fix typo in test log
Fix typo in string written to SD card; its "This", not "Thos".

Signed-off-by: Peter Barada <peter.barada@gmail.com>
2026-05-21 08:56:24 +02:00
Peter Barada
fc2f6c9fc5 boards/arm/stm32h7: Add support fpr nucleo-h753zi board
Add BSP for the NUCLEO-H753ZI board using nucleo-h743zi2 as base.

Signed-off-by: Peter Barada <peter.barada@gmail.com>
2026-05-21 08:56:24 +02:00
dependabot[bot]
f657ea6031 build(deps): bump idna from 3.11 to 3.15 in /Documentation
Bumps [idna](https://github.com/kjd/idna) from 3.11 to 3.15.
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md)
- [Commits](https://github.com/kjd/idna/compare/v3.11...v3.15)

---
updated-dependencies:
- dependency-name: idna
  dependency-version: '3.15'
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-20 13:13:59 -04:00
Peter van der Perk
52ae08196d Docs/platforms/imxrt: Update chip support table.
Include i.MXRT1170 as supported chip and add newer unsupported chips.
Also updated the cache chapter to reflect current state of driver and
support.

Signed-off-by: Peter van der Perk <peter.vanderperk@nxp.com>
2026-05-20 17:34:30 +08:00
Eren Terzioglu
306de5b04b Docs/platforms/esp32p4: Add touch sensor docs
Add touch sensor docs for esp32[-p4]

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2026-05-19 16:38:16 +08:00
Xiang Xiao
c6654b1106 !sched/clock: remove CONFIG_SYSTEM_TIME64 and always use 64-bit time
The 32-bit system clock has a limited range (~497 days) and the
configuration knob is no longer worth the complexity given that
practically every modern target already enables it.  Make 64-bit
time_t/clock_t/sclock_t/nuttx_time_t the only supported flavor.

Specifically:
  - Drop the SYSTEM_TIME64 Kconfig option and its dependent
    PERF_OVERFLOW_CORRECTION/HRTIMER guards in sched/Kconfig.
  - Remove every #ifdef CONFIG_SYSTEM_TIME64 branch in headers
    (include/{sys/types.h,limits.h,inttypes.h,nuttx/clock.h,
    nuttx/fs/hostfs.h}) and core code paths
    (sched/clock/clock.h, drivers/power/pm/pm_procfs.c,
    drivers/rpmsg/rpmsg_ping.c, fs/procfs/fs_procfsuptime.c,
    libs/libc/wqueue/work_usrthread.c,
    arch/avr/src/avrdx/avrdx_timerisr_tickless_alarm.c).
  - Strip CONFIG_SYSTEM_TIME64=y from every board defconfig.
  - Update Documentation/guides/rust.rst accordingly.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2026-05-19 16:21:28 +08:00
Xiang Xiao
c32b683085 !compiler: drop CONFIG_HAVE_LONG_LONG and require long long support
Every compiler supported by NuttX provides the "long long" types,
so the CONFIG_HAVE_LONG_LONG indirection is no longer useful.
Remove the option from include/nuttx/compiler.h and treat
"long long" as unconditionally available across the OS.

In addition to deleting the guard itself, this commit unconditionally
enables the long-long flavored helpers that used to be gated behind
it:

  - libs/libc/fixedmath: drop the soft-emulated b32/ub32 routines
    in lib_fixedmath.c (-261 lines) and trim the matching
    prototypes, Make.defs and CMakeLists.txt entries; keep only
    the long-long backed implementations.
  - include/sys/endian.h, include/strings.h, libs/libc/string
    /lib_ffsll.c, lib_flsll.c: always expose the 64-bit byte-swap
    and ffsll/flsll variants.
  - libs/libm/libm/lib_llround{,f,l}.c: drop the empty stubs.
  - libs/libc/stdlib (atoll, llabs, lldiv, strtoll/ull, rand48,
    strtold), libs/libc/stream (libvsprintf, libvscanf,
    libbsprintf, ultoa_invert), libs/libc/misc (crc64, crc64emac),
    libs/libc/inttypes/strtoimax, libs/libc/lzf, libs/libc/libc.csv,
    libs/libc/string (memset, vikmemcpy): remove the
    #ifdef CONFIG_HAVE_LONG_LONG branches.
  - include/{stddef.h,stdlib.h,fixedmath.h,sys/epoll.h,cxx/cstdlib,
    nuttx/audio/audio.h,nuttx/crc64.h,nuttx/lib/math.h,
    nuttx/lib/math32.h,nuttx/lib/stdbit.h}: same guard cleanup.
  - drivers/note/note_driver.c, fs/spiffs/src/spiffs.h,
    sched/irq/irq_procfs.c: drop their local guards as well.
  - Documentation/applications/netutils/ntpclient/index.rst:
    refresh the documentation snippet.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2026-05-19 16:21:28 +08:00
Saurav Pal
4f6e695f7c fs/mnemofs: Add mnemofs version 1 support.
Split mnemofs into allocation, directory, file, CTZ, and read/write
modules, and update direntry traversal and file handling. Add superblock
format version 1 support, reject newer on-flash versions, and preserve
the mounted version when rewriting metadata.

Update the NAND simulator drivers for the new mnemofs behavior by fixing
spare writes, exposing the erase state, allowing raw reads, and documenting
the background-task startup flow.

Signed-off-by: Saurav Pal <resyfer.dev@gmail.com>
2026-05-19 10:29:11 +08:00
Eren Terzioglu
f21acd2213 Docs/platforms/risc-v: Add LPSPI and SPI3 docs for esp32[-p4]
Add LPSPI and SPI3 docs for esp32p4

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2026-05-19 02:04:35 +08:00
ImBonkers
f47e5394b5 Documentation/arm: Add STM32N6 and Nucleo-N657X0-Q
Add documentation for the STMicro STM32N6 chip family and the
Nucleo-N657X0-Q development board introduced in the previous two
commits.

  - platforms/arm/stm32n6/index.rst
        Chip overview: core, peripherals supported in the initial
        port, and a pointer to the board page.

  - platforms/arm/stm32n6/boards/nucleo-n657x0-q/index.rst
        Board page, structured per Documentation/contributing/
        doc_templates/board.rst: hardware summary, user LED and
        button pin map, the two shipped configs (nsh, ostest),
        and the DEV-mode flash recipe used to load NuttX into
        AXISRAM via ST-LINK.

  - platforms/arm/stm32n6/boards/nucleo-n657x0-q/nucleo-n657x0-q.jpg
        Photograph of the board, referenced from the board page.

The pages are picked up by the existing glob-based toctree in
Documentation/platforms/arm/index.rst, no parent index changes are
required.

Signed-off-by: ImBonkers <samuelnlinden@pm.me>
2026-05-18 14:50:29 -03:00
Tomasz 'CeDeROM' CEDRO
76b31b04a3 doc/esp32p4: ESP32-P4 chip revisions, ESP32-P4-Nano board note.
* NuttX supports ESP32-P4 >= v3.0 by default.
* In order to run on older chips configuration tuning is required.
* Without configutation tune boot loop happens on older chips.
* Added note on WaveShare ESP32-P4-Nano board that is almost identical
  to existing ESP32-P4-Function-EV-Board board, so configs are compatible,
  but it has v1.3 chip, thus config tune is required as documented above.
* Added cross-file reference label to esp32p4-function-ev-board.

Signed-off-by: Tomasz 'CeDeROM' CEDRO <tomek@cedro.info>
2026-05-14 02:55:45 -04:00
Abhishek Mishra
9451848de3 Documentation/nsh: add chmod and chown command docs
Document the new NSH chmod and chown builtins,
including supported numeric permission and
ownership forms.

Signed-off-by: Abhishek Mishra <mishra.abhishek2808@gmail.com>
2026-05-14 02:44:26 -04:00
dependabot[bot]
f5689656c6 build(deps): bump urllib3 from 2.6.3 to 2.7.0 in /Documentation
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.3 to 2.7.0.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-version: 2.7.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-12 02:45:27 -04:00
Matteo Golin
382bb5e874 docs/risc-v: Remove mention of NSH_ARCHINIT
Removes mention of NSH_ARCHINIT since this configuration option no
longer exists.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-10 07:59:10 +08:00
Eren Terzioglu
a3f4d292ff Docs/platforms/esp32c3: Add BLE sleep
Add BLE sleep docs for esp32[-c3]

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2026-05-09 09:48:32 +08:00
bijunda
99d639b9fe Documentation: add nxcamera documentation
Document the nxcamera command usage, including device selection,
resolution, and pixel format options. Also mention recent support
for multi-instance camera mounting and the macOS AVFoundation
backend on the SIM platform.

Signed-off-by: Peter Bee <bijunda@bytedance.com>
2026-05-08 19:51:39 +08:00
daniellizewski
9b18160893 drivers/usbhost/usbhost_cdcecm.c: Added support for Host CDC-ECM
Added support for USB host to use an USB CDC-ECM device.
This class is used for usb-ethernet adapters as well as many modems.

Signed-off-by: daniellizewski <daniellizewski@geotab.com>
2026-05-06 06:20:03 +08:00
Tiago Medicci Serrano
20c38d050b Documentation: Describe ESP32-P4 Ethernet support
This commit describes ethernet support on ESP32-P4 SoC and its
ESP32-P4-Function-EV-Board v1.5.2.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-05-06 01:37:00 +08:00
Alan Carvalho de Assis
51cd4a548f doc: Improved QE Documentation and add mt6816 board profile doc
This commit explain that the QE encoder driver can be used to
internal QE from microcontroller or external magnetic encoder.
Also explains how to use the mt6816 board profile to STM32F4Discovery

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-05-03 07:56:38 -03:00
Matteo Golin
48db502daf !boards: Remove NSH_ARCHINIT and board_app_initialize
BREAKING: In an effort to simplify NuttX initialization, NSH_ARCHINIT is
removed. board_app_initialize is also removed. BOARD_LATE_INITIALIZE now
performs all board initialization logic, and is by default enabled. All
references to these symbols are removed. BOARDIOC_INIT remains, but will
result in -ENOTTY when called. It is to be removed in a later commit.

Quick fix: Boards relying on NSH_ARCHINIT should now enable
CONFIG_BOARD_LATE_INITIALIZE instead. If the application needs
fine-grained control over board initialization from userspace, the logic
performed by BOARDIOC_INIT may be copied to the board_finalinitialize
function and used instead via BOARDIOC_FINALINIT. All
board_app_initialize logic provided by NuttX is now moved to
board_late_initialize, and the same should be done for out-of-tree
boards.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-02 18:36:46 +08:00
Daniel Monteiro
8e91dd60a0 Documentation: add rst file for the TM4C123G
Signed-off-by: Daniel Monteiro <monteiroquiet@gmail.com>
2026-05-02 10:18:08 +08:00
raiden00pl
39378e1d46 drivers/sensors: add initial support for fixed-point data for sensors
new sensor framework can now select between float data type and
fixed-point data type

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-02 00:56:42 +08:00
Jukka Laitinen
dde26e5589 Documentation/drivers/timers: Add documentation of DShot driver upper half
Add documentation for the DShot electronic speed controllers protocol

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2026-04-30 12:24:47 +08:00
Alan Carvalho de Assis
c3e7c94d2f doc/qemu-i486: Add documentation about qemu-i486:vga_fb
This commit adds documentation to vga_fb board profile to QEMU.

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-04-30 11:56:49 +08:00
Alan Carvalho de Assis
9f2db60370 doc: Update qemu-i486
This PR improves the qemu-i486 documentation.

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-04-29 21:39:20 +08:00
Shunchao Hu
18cd40cd5d net/nat: Update NAT rst documentation.
Update the NAT documentation to make the validation flow easier to
follow.

The existing document already contains useful details, but the test setup
is hard to read for beginners.
 - In particular, the NuttX-side commands and Linux host commands can
   be confused
 - Some commands are redundant
 - Some required steps are missing
 - The Internet access example is not necessary for NAT behavior itself

Simplify the validation case to use a local topology with Linux network
namespaces. Add an ICMP test case and the required explanations around the
NuttX iptables command and interface roles.

Remove the IPv6 validation case from this doc, since the NAT66 flow
follows the same structure as the NAT44 case.

Signed-off-by: Shunchao Hu <ankohuu@gmail.com>
2026-04-29 09:17:55 -03:00
wangjianyu3
f97b29c4c4 boards/lckfb-szpi-esp32s3: add vncviewer defconfig and documentation
Add vncviewer board configuration and documentation:
- boards: add lckfb-szpi-esp32s3:vncviewer defconfig
- Documentation: add system/vncviewer application doc with host
  VNC server setup examples (Xvfb, clip, scale modes) and images

Assisted-by: GitHubCopilot:claude-4.6-opus
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2026-04-27 22:19:31 +02:00
Eren Terzioglu
64cf22628f Docs/platforms/risc-v: Add autopm docs
Add autopm docs for esp32p4

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2026-04-27 21:20:21 +02:00
Sumit6307
b2b78d2f8a fs: Add Kernel-level VFS Performance Profiler
This adds a kernel-level performance profiler for the VFS.
By enabling CONFIG_FS_PROFILER, the core VFS system calls
(file_read, file_write, file_open, and file_close) are
instrumented to track high-resolution execution times using
clock_systime_timespec() seamlessly.

The collected statistics are exposed dynamically via a new
procfs node at /proc/fs/profile, allowing CI regression
testing without needing external debugging tools.

Signed-off-by: Sumit6307 <sumitkesar6307@gmail.com>
2026-04-26 11:50:09 -03:00
Matteo Golin
727502ea9b boards/esp32c3-xiao: Add SMARTFS configuration
Adds a configuration that combines the `nimble` example with a SMARTFS
file system configured in the chip's flash.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-04-26 18:12:38 +08:00
Eren Terzioglu
61b0fd15fa Docs/platforms/risc-v: Add ULP wakeup modes docs for esp32[-c6|-p4]
Add ULP wakeup modes docs for esp32[-c6|-p4]

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2026-04-24 12:38:04 +02:00
Eren Terzioglu
5e29129d97 Docs/platforms/esp32p4: Add LP_ADC docs
Add LP_ADC docs for esp32p4

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2026-04-24 12:37:11 +02:00
Tomasz 'CeDeROM' CEDRO
3efaf80d3d boards/xtensa/esp32s3: New board WaveShare ESP32-S3-Touch-LCD-1.28 (WIP).
* Initial experimental / work in progress implementation.
* New board name is esp32s3-ws-lcd128.
* Supports Kconfig delectable w/wo touch variants (lcd gpios difference).
* IMU QMI8658 bringups is put into esp32s3/common/src to share with other
  boards. Pin defines are located at <board>include/board.h and referenced
  with `#include <arch/board/board.h>`.
* Supported configurations: nsh, ostest, coremark, touch-lvgl, notouch-lvgl,
  imu-qmi8658, watchdog.
* Does not have touch panel driver yet.
* Created board documentation. Added sphinx inline cross-references.
* TODO: Fix SPI GC9A01A LCD pixel format colors.
* TODO: Create I2C CST816S touch panel driver.

Signed-off-by: Tomasz 'CeDeROM' CEDRO <tomek@cedro.info>
2026-04-24 16:27:08 +08:00
Tiago Medicci Serrano
04c4269ef0 Documentation: Update rmt defconfig description
Updated the `rmt` defconfig description for the Espressif's SoCs.
Use the `irtest` testing app (instead of the deprecated `rmtchar`)
to test the RMT peripheral.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-04-24 11:09:41 +08:00
Alan Carvalho de Assis
c476700583 doc/input: Add documention to MPR121 Capacitive Keypad
This commit adds the Documentation to MPR121 Keypad and the board
profile documentation to STM32F4Discovery board.

Signed-off-by: Alan C. Assis <acassis@gmail.com>
2026-04-23 15:56:32 -03:00
Arjav Patel
f51052d780 sched/docs: Align ETC ROMFS text with tmpfs-first /tmp mount.
Update ETC_ROMFS help text and NSH/ROMFS guides to describe the
/tmp mount behavior as tmpfs-first with FAT RAMDISK fallback when
CONFIG_FS_TMPFS is not enabled.

Signed-off-by: Arjav Patel <arjav1528@gmail.com>
2026-04-23 10:26:21 -03:00
aviralgarg05
59d44c4997 boards/arm/stm32: switch nucleo-f412zg console to USART3 VCP
Enable USART3 support for STM32F412 and use it as the default NUCLEO-F412ZG nsh console path.

The ST-LINK virtual COM port on this board is wired to USART3 on PD8/PD9. Restore USART2 to its header-pin routing, switch the nsh defconfig to USART3, and update the board documentation to match the shipped solder-bridge configuration described in issue #17722.

Signed-off-by: aviralgarg05 <gargaviral99@gmail.com>
2026-04-22 01:14:39 +02:00
raiden00pl
6f9d6f3d94 boards/nucleo-c071rb: add nxmodbus examples to jumbo
add nxmodbus client and server examples to jumbo

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-04-21 09:39:04 +08:00