From 5ddfdfef189f9536b615bca7c3fdc9774bdb221b Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Mon, 20 Nov 2023 17:40:06 -0600 Subject: [PATCH 01/88] workflow: increase preview expiry from 7d to 30d We have been slow to merge pull requests and that often meant the hosted preview expired before the PR was merged. Signed-off-by: Mike Szczys --- .github/workflows/firebase-hosting-merge-develop.yml | 1 + .github/workflows/firebase-hosting-merge-main.yml | 1 + .github/workflows/firebase-hosting-pull-request.yml | 1 + 3 files changed, 3 insertions(+) diff --git a/.github/workflows/firebase-hosting-merge-develop.yml b/.github/workflows/firebase-hosting-merge-develop.yml index c4061014..d78e8deb 100644 --- a/.github/workflows/firebase-hosting-merge-develop.yml +++ b/.github/workflows/firebase-hosting-merge-develop.yml @@ -22,5 +22,6 @@ jobs: channelId: live projectId: golioth target: docs-dev + expires: 30d env: FIREBASE_CLI_PREVIEWS: hostingchannels diff --git a/.github/workflows/firebase-hosting-merge-main.yml b/.github/workflows/firebase-hosting-merge-main.yml index 9135e216..d92c6903 100644 --- a/.github/workflows/firebase-hosting-merge-main.yml +++ b/.github/workflows/firebase-hosting-merge-main.yml @@ -22,5 +22,6 @@ jobs: channelId: live projectId: golioth target: docs-prod + expires: 30d env: FIREBASE_CLI_PREVIEWS: hostingchannels diff --git a/.github/workflows/firebase-hosting-pull-request.yml b/.github/workflows/firebase-hosting-pull-request.yml index 0f025b72..0893334c 100644 --- a/.github/workflows/firebase-hosting-pull-request.yml +++ b/.github/workflows/firebase-hosting-pull-request.yml @@ -18,5 +18,6 @@ jobs: firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_GOLIOTH }}' projectId: golioth target: docs-dev + expires: 30d env: FIREBASE_CLI_PREVIEWS: hostingchannels From 77e4193499bc1212318811f59d72d9c6bee81dd0 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Mon, 20 Nov 2023 17:53:27 -0600 Subject: [PATCH 02/88] reorg: move hardware section under firmware Broad strokes to reogranize our docs. This commit does a wholesale move of the Hardware section into the Firmware section. Signed-off-by: Mike Szczys --- .../1-espidf-quickstart/2-set-up-espidf.md | 8 +++--- .../1-espidf-quickstart/3-flash-sample.md | 0 .../2-esp32/1-espidf-quickstart/4-ota.md | 0 .../1-espidf-quickstart/5-cloud-data.md | 0 .../2-esp32/1-espidf-quickstart/README.md | 0 .../1-espidf-quickstart/_category_.yml | 0 .../_partials/install-espidf-environment.md | 0 .../_partials/install-espidf.md | 0 .../_partials/install-golioth-firmware-sdk.md | 0 .../_partials/install-sample-build.md | 0 .../assets/golioth-OTA-create-artifact.png | Bin .../assets/golioth-OTA-create-release.png | Bin .../golioth-OTA-report-firmware-revision.png | Bin .../assets/golioth-OTA-rollout.png | Bin .../assets/golioth-espidf-logs.png | Bin .../assets/golioth-espidf-state.png | Bin .../assets/golioth-espidf-stream.png | Bin .../2-zephyr-quickstart/2-set-up-zephyr.md | 2 +- .../2-zephyr-quickstart/3-flash-sample.md | 0 .../2-zephyr-quickstart/4-view-logs.md | 0 .../2-esp32/2-zephyr-quickstart/README.md | 0 .../2-zephyr-quickstart/_category_.yml | 0 .../install-espressif-toolchain-unix.md | 0 .../install-espressif-toolchain-windows.md | 0 .../_partials/install-espressif-toolchain.md | 4 +-- .../{ => firmware}/hardware/2-esp32/README.md | 0 .../hardware/2-esp32/_category_.yml | 0 .../1-zephyr-quickstart/2-set-up-zephyr.md | 0 .../1-zephyr-quickstart/3-flash-sample.md | 0 .../1-zephyr-quickstart/4-view-logs.md | 0 .../1-zephyr-quickstart/README.md | 0 .../1-zephyr-quickstart/_category_.yml | 0 .../hardware/3-mimxrt1060_evkb/README.md | 0 .../hardware/3-mimxrt1060_evkb/_category_.yml | 0 .../2-zephyr-quickstart/2-set-up-zephyr.md | 6 ++-- .../3-hardware-programmer.md | 0 .../2-zephyr-quickstart/4-carrier-setup.md | 0 .../2-zephyr-quickstart/5-flash-sample.md | 0 .../2-zephyr-quickstart/6-view-logs.md | 0 .../4-nrf91/2-zephyr-quickstart/README.md | 0 .../2-zephyr-quickstart/_category_.yml | 0 .../_partials/build-fw-nrf91.md | 0 .../_partials/install-nrf-connect-sdk-unix.md | 0 .../install-nrf-connect-sdk-windows.md | 0 .../_partials/install-nrf-connect-sdk.md | 4 +-- .../_partials/setup-west-nrf91-windows.md | 0 .../_partials/setup-west-nrf91.md | 2 +- .../assets/LTE-Link-Monitor.png | Bin .../{ => firmware}/hardware/4-nrf91/README.md | 0 .../hardware/4-nrf91/_category_.yml | 0 .../3-simulating-devices-coap.md | 0 .../2-zephyr-quickstart/4-qemu-install.md | 0 .../5-simulating-devices-qemu.md | 2 +- .../2-zephyr-quickstart/6-view-logs.md | 0 .../2-zephyr-quickstart/README.md | 0 .../2-zephyr-quickstart/_category_.yml | 0 .../_partials/check-toolchain.md | 0 .../hardware/5-virtual-device/README.md | 0 .../hardware/5-virtual-device/_category_.yml | 0 .../hardware/6-catalog/6-hardware-catalog.mdx | 0 .../hardware/6-catalog/_category_.yml | 0 .../continuously-verified/_category_.yml | 0 .../arm_mimxrt1060_evkb.md | 0 .../arm_nrf9160dk_nrf9160.md | 0 .../arm_qemu_cortex_m3.md | 0 .../continuously-verified/xtensa_esp32.md | 0 .../6-catalog/unverified/_category_.yml | 0 .../6-catalog/unverified/arc_em_starterkit.md | 0 .../6-catalog/unverified/arc_emsdp.md | 0 .../hardware/6-catalog/unverified/arc_hsdk.md | 0 .../6-catalog/unverified/arc_hsdk4xd.md | 0 .../6-catalog/unverified/arc_iotdk.md | 0 .../hardware/6-catalog/unverified/arc_nsim.md | 0 .../6-catalog/unverified/arc_qemu_arc.md | 0 .../unverified/arm64_bcm958402m2_a72.md | 0 .../arm64_fvp_base_revc_2xaemv8a.md | 0 .../unverified/arm64_fvp_baser_aemv8r.md | 0 .../arm64_intel_socfpga_agilex5_socdk.md | 0 .../arm64_intel_socfpga_agilex_socdk.md | 0 .../unverified/arm64_khadas_edgev.md | 0 .../6-catalog/unverified/arm64_mimx8mm_evk.md | 0 .../6-catalog/unverified/arm64_mimx8mn_evk.md | 0 .../6-catalog/unverified/arm64_mimx8mp_evk.md | 0 .../6-catalog/unverified/arm64_mimx93_evk.md | 0 .../unverified/arm64_nxp_ls1046ardb.md | 0 .../unverified/arm64_phycore_am62x_a53.md | 0 .../unverified/arm64_qemu_cortex_a53.md | 0 .../unverified/arm64_qemu_kvm_arm64.md | 0 .../unverified/arm64_rcar_h3ulcb_ca57.md | 0 .../unverified/arm64_rcar_salvator_xs_m3.md | 0 .../6-catalog/unverified/arm64_rpi_4b.md | 0 .../6-catalog/unverified/arm64_xenvm.md | 0 .../6-catalog/unverified/arm_96b_aerocore2.md | 0 .../6-catalog/unverified/arm_96b_argonkey.md | 0 .../6-catalog/unverified/arm_96b_avenger96.md | 0 .../6-catalog/unverified/arm_96b_carbon.md | 0 .../unverified/arm_96b_carbon_nrf51.md | 0 .../6-catalog/unverified/arm_96b_meerkat96.md | 0 .../6-catalog/unverified/arm_96b_neonkey.md | 0 .../6-catalog/unverified/arm_96b_nitrogen.md | 0 .../unverified/arm_96b_stm32_sensor_mez.md | 0 .../6-catalog/unverified/arm_96b_wistrio.md | 0 .../6-catalog/unverified/arm_acn52832.md | 0 .../unverified/arm_actinius_icarus.md | 0 .../unverified/arm_actinius_icarus_bee.md | 0 .../unverified/arm_actinius_icarus_som.md | 0 .../unverified/arm_actinius_icarus_som_dk.md | 0 .../arm_adafruit_feather_m0_basic_proto.md | 0 .../arm_adafruit_feather_m0_lora.md | 0 .../arm_adafruit_feather_nrf52840.md | 0 .../arm_adafruit_feather_stm32f405.md | 0 .../arm_adafruit_itsybitsy_m4_express.md | 0 .../arm_adafruit_itsybitsy_nrf52840.md | 0 .../unverified/arm_adafruit_kb2040.md | 0 .../unverified/arm_adafruit_trinket_m0.md | 0 .../6-catalog/unverified/arm_am62x_m4.md | 0 .../unverified/arm_apollo4p_blue_kxr_evb.md | 0 .../6-catalog/unverified/arm_apollo4p_evb.md | 0 .../6-catalog/unverified/arm_arduino_due.md | 0 .../unverified/arm_arduino_giga_r1.md | 0 .../unverified/arm_arduino_mkrzero.md | 0 .../unverified/arm_arduino_nano_33_ble.md | 0 .../unverified/arm_arduino_nano_33_iot.md | 0 .../unverified/arm_arduino_nicla_sense_me.md | 0 .../unverified/arm_arduino_portenta_h7.md | 0 .../6-catalog/unverified/arm_arduino_zero.md | 0 .../hardware/6-catalog/unverified/arm_arty.md | 0 .../6-catalog/unverified/arm_ast1030_evb.md | 0 .../unverified/arm_atsamc21n_xpro.md | 0 .../6-catalog/unverified/arm_atsamd20_xpro.md | 0 .../6-catalog/unverified/arm_atsamd21_xpro.md | 0 .../6-catalog/unverified/arm_atsame54_xpro.md | 0 .../6-catalog/unverified/arm_atsaml21_xpro.md | 0 .../6-catalog/unverified/arm_atsamr21_xpro.md | 0 .../6-catalog/unverified/arm_atsamr34_xpro.md | 0 .../unverified/arm_az3166_iotdevkit.md | 0 .../6-catalog/unverified/arm_b_g474e_dpow1.md | 0 .../unverified/arm_b_l072z_lrwan1.md | 0 .../unverified/arm_b_l4s5i_iot01a.md | 0 .../unverified/arm_b_u585i_iot02a.md | 0 .../6-catalog/unverified/arm_bbc_microbit.md | 0 .../unverified/arm_bbc_microbit_v2.md | 0 .../6-catalog/unverified/arm_bcm958401m2.md | 0 .../unverified/arm_bcm958402m2_m7.md | 0 .../6-catalog/unverified/arm_beagle_bcf.md | 0 .../6-catalog/unverified/arm_bl5340_dvk.md | 0 .../6-catalog/unverified/arm_bl652_dvk.md | 0 .../6-catalog/unverified/arm_bl653_dvk.md | 0 .../6-catalog/unverified/arm_bl654_dvk.md | 0 .../unverified/arm_bl654_sensor_board.md | 0 .../6-catalog/unverified/arm_bl654_usb.md | 0 .../6-catalog/unverified/arm_black_f407ve.md | 0 .../unverified/arm_black_f407zg_pro.md | 0 .../unverified/arm_blackpill_f401cc.md | 0 .../unverified/arm_blackpill_f401ce.md | 0 .../unverified/arm_blackpill_f411ce.md | 0 .../arm_blueclover_plt_demo_v2_nrf52832.md | 0 .../6-catalog/unverified/arm_bt510.md | 0 .../6-catalog/unverified/arm_bt610.md | 0 .../unverified/arm_cc1352p1_launchxl.md | 0 .../unverified/arm_cc1352r1_launchxl.md | 0 .../unverified/arm_cc1352r_sensortag.md | 0 .../unverified/arm_cc26x2r1_launchxl.md | 0 .../unverified/arm_cc3220sf_launchxl.md | 0 .../unverified/arm_cc3235sf_launchxl.md | 0 .../unverified/arm_colibri_imx7d_m4.md | 0 .../arm_contextualelectronics_abc.md | 0 .../unverified/arm_cy8ckit_062_ble.md | 0 .../unverified/arm_cy8ckit_062_wifi_bt.md | 0 .../6-catalog/unverified/arm_cy8ckit_062s4.md | 0 .../unverified/arm_cy8cproto_062_4343w.md | 0 .../unverified/arm_cy8cproto_063_ble.md | 0 .../unverified/arm_cyclonev_socdk.md | 0 .../unverified/arm_da14695_dk_usb.md | 0 .../unverified/arm_da1469x_dk_pro.md | 0 .../unverified/arm_decawave_dwm1001_dev.md | 0 .../6-catalog/unverified/arm_degu_evk.md | 0 .../unverified/arm_disco_l475_iot1.md | 0 .../6-catalog/unverified/arm_dragino_lsn50.md | 0 .../unverified/arm_dragino_nbsn95.md | 0 .../unverified/arm_ebyte_e73_tbb_nrf52832.md | 0 .../unverified/arm_efm32gg_sltb009a.md | 0 .../unverified/arm_efm32gg_slwstk6121a.md | 0 .../unverified/arm_efm32gg_stk3701a.md | 0 .../unverified/arm_efm32hg_slstk3400a.md | 0 .../unverified/arm_efm32pg_stk3401a.md | 0 .../unverified/arm_efm32pg_stk3402a.md | 0 .../unverified/arm_efm32wg_stk3800.md | 0 .../6-catalog/unverified/arm_efr32_radio.md | 0 .../unverified/arm_efr32_thunderboard.md | 0 .../unverified/arm_efr32mg_sltb004a.md | 0 .../unverified/arm_efr32xg24_dk2601b.md | 0 .../6-catalog/unverified/arm_ev11l78a.md | 0 .../hardware/6-catalog/unverified/arm_faze.md | 0 .../6-catalog/unverified/arm_frdm_k22f.md | 0 .../6-catalog/unverified/arm_frdm_k64f.md | 0 .../6-catalog/unverified/arm_frdm_k82f.md | 0 .../6-catalog/unverified/arm_frdm_kl25z.md | 0 .../6-catalog/unverified/arm_frdm_kw41z.md | 0 .../arm_fvp_baser_aemv8r_aarch32.md | 0 .../unverified/arm_gd32a503v_eval.md | 0 .../unverified/arm_gd32e103v_eval.md | 0 .../unverified/arm_gd32e507v_start.md | 0 .../unverified/arm_gd32e507z_eval.md | 0 .../unverified/arm_gd32f350r_eval.md | 0 .../unverified/arm_gd32f403z_eval.md | 0 .../unverified/arm_gd32f407v_start.md | 0 .../unverified/arm_gd32f450i_eval.md | 0 .../unverified/arm_gd32f450v_start.md | 0 .../unverified/arm_gd32f450z_eval.md | 0 .../unverified/arm_gd32f470i_eval.md | 0 .../unverified/arm_gd32l233r_eval.md | 0 .../unverified/arm_google_dragonclaw.md | 0 .../6-catalog/unverified/arm_google_kukui.md | 0 .../unverified/arm_google_twinkie_v2.md | 0 .../6-catalog/unverified/arm_hexiwear_k64.md | 0 .../unverified/arm_hexiwear_kw40z.md | 0 .../unverified/arm_holyiot_yj16019.md | 0 .../6-catalog/unverified/arm_ip_k66f.md | 0 .../6-catalog/unverified/arm_kv260_r5.md | 0 .../6-catalog/unverified/arm_legend.md | 0 .../unverified/arm_lora_e5_dev_board.md | 0 .../unverified/arm_lpcxpresso11u68.md | 0 .../unverified/arm_lpcxpresso51u68.md | 0 .../unverified/arm_lpcxpresso54114.md | 0 .../unverified/arm_lpcxpresso55s06.md | 0 .../unverified/arm_lpcxpresso55s16.md | 0 .../unverified/arm_lpcxpresso55s28.md | 0 .../unverified/arm_lpcxpresso55s36.md | 0 .../unverified/arm_lpcxpresso55s69.md | 0 .../unverified/arm_mec1501modular_assy6885.md | 0 .../unverified/arm_mec15xxevb_assy6853.md | 0 .../unverified/arm_mec172xevb_assy6906.md | 0 .../unverified/arm_mec172xmodular_assy6930.md | 0 .../6-catalog/unverified/arm_mercury_xu.md | 0 .../6-catalog/unverified/arm_mg100.md | 0 .../unverified/arm_mikroe_clicker_2.md | 0 .../arm_mikroe_mini_m4_for_stm32.md | 0 .../6-catalog/unverified/arm_mimx8mm_evk.md | 0 .../unverified/arm_mimx8mm_phyboard_polis.md | 0 .../6-catalog/unverified/arm_mimx8mp_evk.md | 0 .../unverified/arm_mimx8mp_phyboard_pollux.md | 0 .../6-catalog/unverified/arm_mimx8mq_evk.md | 0 .../unverified/arm_mimxrt1010_evk.md | 0 .../unverified/arm_mimxrt1015_evk.md | 0 .../unverified/arm_mimxrt1020_evk.md | 0 .../unverified/arm_mimxrt1024_evk.md | 0 .../unverified/arm_mimxrt1040_evk.md | 0 .../unverified/arm_mimxrt1050_evk.md | 0 .../unverified/arm_mimxrt1060_evk.md | 0 .../unverified/arm_mimxrt1062_fmurt6.md | 0 .../unverified/arm_mimxrt1064_evk.md | 0 .../unverified/arm_mimxrt1160_evk.md | 0 .../unverified/arm_mimxrt1170_evk.md | 0 .../6-catalog/unverified/arm_mimxrt595_evk.md | 0 .../6-catalog/unverified/arm_mimxrt685_evk.md | 0 .../6-catalog/unverified/arm_mm_feather.md | 0 .../6-catalog/unverified/arm_mm_swiftio.md | 0 .../6-catalog/unverified/arm_mps2_an385.md | 0 .../6-catalog/unverified/arm_mps2_an521.md | 0 .../6-catalog/unverified/arm_mps3_an547.md | 0 .../6-catalog/unverified/arm_mr_canhubk3.md | 0 .../arm_msp_exp432p401r_launchxl.md | 0 .../6-catalog/unverified/arm_npcx4m8f_evb.md | 0 .../6-catalog/unverified/arm_npcx7m6fb_evb.md | 0 .../6-catalog/unverified/arm_npcx9m6f_evb.md | 0 .../unverified/arm_nrf21540dk_nrf52840.md | 0 .../6-catalog/unverified/arm_nrf51_ble400.md | 0 .../6-catalog/unverified/arm_nrf51_blenano.md | 0 .../unverified/arm_nrf51_vbluno51.md | 0 .../unverified/arm_nrf51dk_nrf51422.md | 0 .../unverified/arm_nrf51dongle_nrf51422.md | 0 .../6-catalog/unverified/arm_nrf52832_mdk.md | 0 .../unverified/arm_nrf52833dk_nrf52820.md | 0 .../unverified/arm_nrf52833dk_nrf52833.md | 0 .../6-catalog/unverified/arm_nrf52840_blip.md | 0 .../6-catalog/unverified/arm_nrf52840_mdk.md | 0 .../unverified/arm_nrf52840_mdk_usb_dongle.md | 0 .../unverified/arm_nrf52840_papyr.md | 0 .../unverified/arm_nrf52840dk_nrf52811.md | 0 .../unverified/arm_nrf52840dk_nrf52840.md | 0 .../unverified/arm_nrf52840dongle_nrf52840.md | 0 .../unverified/arm_nrf52_adafruit_feather.md | 0 .../unverified/arm_nrf52_blenano2.md | 0 .../unverified/arm_nrf52_sparkfun.md | 0 .../unverified/arm_nrf52_vbluno52.md | 0 .../unverified/arm_nrf52dk_nrf52805.md | 0 .../unverified/arm_nrf52dk_nrf52810.md | 0 .../unverified/arm_nrf52dk_nrf52832.md | 0 .../arm_nrf5340_audio_dk_nrf5340.md | 0 .../unverified/arm_nrf5340dk_nrf5340.md | 0 .../unverified/arm_nrf9160_innblue21.md | 0 .../unverified/arm_nrf9160_innblue22.md | 0 .../unverified/arm_nrf9160dk_nrf52840.md | 0 .../unverified/arm_nrf9161dk_nrf9161.md | 0 .../6-catalog/unverified/arm_nucleo_c031c6.md | 0 .../6-catalog/unverified/arm_nucleo_f030r8.md | 0 .../6-catalog/unverified/arm_nucleo_f031k6.md | 0 .../6-catalog/unverified/arm_nucleo_f042k6.md | 0 .../6-catalog/unverified/arm_nucleo_f070rb.md | 0 .../6-catalog/unverified/arm_nucleo_f091rc.md | 0 .../6-catalog/unverified/arm_nucleo_f103rb.md | 0 .../6-catalog/unverified/arm_nucleo_f207zg.md | 0 .../6-catalog/unverified/arm_nucleo_f302r8.md | 0 .../6-catalog/unverified/arm_nucleo_f303k8.md | 0 .../6-catalog/unverified/arm_nucleo_f303re.md | 0 .../6-catalog/unverified/arm_nucleo_f334r8.md | 0 .../6-catalog/unverified/arm_nucleo_f401re.md | 0 .../6-catalog/unverified/arm_nucleo_f410rb.md | 0 .../6-catalog/unverified/arm_nucleo_f411re.md | 0 .../6-catalog/unverified/arm_nucleo_f412zg.md | 0 .../6-catalog/unverified/arm_nucleo_f413zh.md | 0 .../6-catalog/unverified/arm_nucleo_f429zi.md | 0 .../6-catalog/unverified/arm_nucleo_f446re.md | 0 .../6-catalog/unverified/arm_nucleo_f446ze.md | 0 .../6-catalog/unverified/arm_nucleo_f746zg.md | 0 .../6-catalog/unverified/arm_nucleo_f756zg.md | 0 .../6-catalog/unverified/arm_nucleo_f767zi.md | 0 .../6-catalog/unverified/arm_nucleo_g031k8.md | 0 .../6-catalog/unverified/arm_nucleo_g070rb.md | 0 .../6-catalog/unverified/arm_nucleo_g071rb.md | 0 .../6-catalog/unverified/arm_nucleo_g0b1re.md | 0 .../6-catalog/unverified/arm_nucleo_g431rb.md | 0 .../6-catalog/unverified/arm_nucleo_g474re.md | 0 .../6-catalog/unverified/arm_nucleo_h563zi.md | 0 .../6-catalog/unverified/arm_nucleo_h723zg.md | 0 .../6-catalog/unverified/arm_nucleo_h743zi.md | 0 .../unverified/arm_nucleo_h745zi_q.md | 0 .../6-catalog/unverified/arm_nucleo_h753zi.md | 0 .../unverified/arm_nucleo_h7a3zi_q.md | 0 .../6-catalog/unverified/arm_nucleo_l011k4.md | 0 .../6-catalog/unverified/arm_nucleo_l031k6.md | 0 .../6-catalog/unverified/arm_nucleo_l053r8.md | 0 .../6-catalog/unverified/arm_nucleo_l073rz.md | 0 .../6-catalog/unverified/arm_nucleo_l152re.md | 0 .../unverified/arm_nucleo_l412rb_p.md | 0 .../6-catalog/unverified/arm_nucleo_l432kc.md | 0 .../unverified/arm_nucleo_l433rc_p.md | 0 .../6-catalog/unverified/arm_nucleo_l452re.md | 0 .../6-catalog/unverified/arm_nucleo_l476rg.md | 0 .../6-catalog/unverified/arm_nucleo_l496zg.md | 0 .../6-catalog/unverified/arm_nucleo_l4a6zg.md | 0 .../6-catalog/unverified/arm_nucleo_l4r5zi.md | 0 .../unverified/arm_nucleo_l552ze_q.md | 0 .../unverified/arm_nucleo_u575zi_q.md | 0 .../unverified/arm_nucleo_u5a5zj_q.md | 0 .../6-catalog/unverified/arm_nucleo_wb55rg.md | 0 .../unverified/arm_nucleo_wba52cg.md | 0 .../6-catalog/unverified/arm_nucleo_wl55jc.md | 0 .../unverified/arm_numaker_pfm_m467.md | 0 .../unverified/arm_nuvoton_pfm_m487.md | 0 .../arm_olimex_lora_stm32wl_devkit.md | 0 .../unverified/arm_olimex_stm32_e407.md | 0 .../unverified/arm_olimex_stm32_h103.md | 0 .../unverified/arm_olimex_stm32_h405.md | 0 .../unverified/arm_olimex_stm32_h407.md | 0 .../unverified/arm_olimex_stm32_p405.md | 0 .../unverified/arm_olimexino_stm32.md | 0 .../6-catalog/unverified/arm_pan1770_evb.md | 0 .../6-catalog/unverified/arm_pan1780_evb.md | 0 .../6-catalog/unverified/arm_pan1781_evb.md | 0 .../6-catalog/unverified/arm_pan1782_evb.md | 0 .../unverified/arm_pandora_stm32l475.md | 0 .../unverified/arm_particle_argon.md | 0 .../unverified/arm_particle_boron.md | 0 .../unverified/arm_particle_xenon.md | 0 .../6-catalog/unverified/arm_pico_pi_m4.md | 0 .../unverified/arm_pinetime_devkit0.md | 0 .../unverified/arm_pinnacle_100_dvk.md | 0 .../unverified/arm_qemu_cortex_a9.md | 0 .../unverified/arm_qemu_cortex_m0.md | 0 .../unverified/arm_qemu_cortex_r5.md | 0 .../hardware/6-catalog/unverified/arm_qomu.md | 0 .../6-catalog/unverified/arm_quick_feather.md | 0 .../unverified/arm_rak4631_nrf52840.md | 0 .../unverified/arm_rak5010_nrf52840.md | 0 .../arm_raytac_mdbt50q_db_33_nrf52833.md | 0 .../arm_raytac_mdbt50q_db_40_nrf52840.md | 0 .../arm_raytac_mdbt53_db_40_nrf5340.md | 0 .../arm_raytac_mdbt53v_db_40_nrf5340.md | 0 .../unverified/arm_rcar_h3_salvatorx.md | 0 .../6-catalog/unverified/arm_rcar_h3ulcb.md | 0 .../unverified/arm_rddrone_fmuk66.md | 0 .../6-catalog/unverified/arm_reel_board.md | 0 .../6-catalog/unverified/arm_rm1xx_dvk.md | 0 .../6-catalog/unverified/arm_ronoth_lodev.md | 0 .../6-catalog/unverified/arm_rpi_pico.md | 0 .../unverified/arm_ruuvi_ruuvitag.md | 0 .../unverified/arm_s32z270dc2_r52.md | 0 .../6-catalog/unverified/arm_sam4e_xpro.md | 0 .../6-catalog/unverified/arm_sam4l_ek.md | 0 .../unverified/arm_sam4s_xplained.md | 0 .../unverified/arm_sam_e70_xplained.md | 0 .../6-catalog/unverified/arm_sam_v71_xult.md | 0 .../6-catalog/unverified/arm_scobc_module1.md | 0 .../unverified/arm_seeeduino_xiao.md | 0 .../unverified/arm_segger_trb_stm32f407.md | 0 .../unverified/arm_sensortile_box.md | 0 .../6-catalog/unverified/arm_serpente.md | 0 .../arm_sparkfun_pro_micro_rp2040.md | 0 .../arm_sparkfun_thing_plus_nrf9160.md | 0 .../unverified/arm_steval_fcu001v1.md | 0 .../6-catalog/unverified/arm_stm3210c_eval.md | 0 .../unverified/arm_stm32373c_eval.md | 0 .../6-catalog/unverified/arm_stm32_min_dev.md | 0 .../unverified/arm_stm32f030_demo.md | 0 .../unverified/arm_stm32f072_eval.md | 0 .../unverified/arm_stm32f072b_disco.md | 0 .../6-catalog/unverified/arm_stm32f0_disco.md | 0 .../unverified/arm_stm32f103_mini.md | 0 .../6-catalog/unverified/arm_stm32f3_disco.md | 0 .../unverified/arm_stm32f3_seco_d23.md | 0 .../unverified/arm_stm32f401_mini.md | 0 .../unverified/arm_stm32f411e_disco.md | 0 .../unverified/arm_stm32f412g_disco.md | 0 .../unverified/arm_stm32f429i_disc1.md | 0 .../unverified/arm_stm32f469i_disco.md | 0 .../6-catalog/unverified/arm_stm32f4_disco.md | 0 .../unverified/arm_stm32f723e_disco.md | 0 .../unverified/arm_stm32f746g_disco.md | 0 .../6-catalog/unverified/arm_stm32f7508_dk.md | 0 .../unverified/arm_stm32f769i_disco.md | 0 .../unverified/arm_stm32g0316_disco.md | 0 .../unverified/arm_stm32g071b_disco.md | 0 .../unverified/arm_stm32g081b_eval.md | 0 .../6-catalog/unverified/arm_stm32h573i_dk.md | 0 .../unverified/arm_stm32h735g_disco.md | 0 .../unverified/arm_stm32h747i_disco.md | 0 .../6-catalog/unverified/arm_stm32h7b3i_dk.md | 0 .../6-catalog/unverified/arm_stm32l1_disco.md | 0 .../unverified/arm_stm32l476g_disco.md | 0 .../unverified/arm_stm32l496g_disco.md | 0 .../6-catalog/unverified/arm_stm32l562e_dk.md | 0 .../unverified/arm_stm32mp157c_dk2.md | 0 .../6-catalog/unverified/arm_stm32vl_disco.md | 0 .../6-catalog/unverified/arm_swan_r5.md | 0 .../6-catalog/unverified/arm_tdk_robokit1.md | 0 .../6-catalog/unverified/arm_teensy4.md | 0 .../unverified/arm_thingy52_nrf52832.md | 0 .../unverified/arm_thingy53_nrf5340.md | 0 .../6-catalog/unverified/arm_twr_ke18f.md | 0 .../6-catalog/unverified/arm_twr_kv58f220m.md | 0 .../unverified/arm_ubx_bmd300eval_nrf52832.md | 0 .../unverified/arm_ubx_bmd330eval_nrf52810.md | 0 .../unverified/arm_ubx_bmd340eval_nrf52840.md | 0 .../unverified/arm_ubx_bmd345eval_nrf52840.md | 0 .../unverified/arm_ubx_bmd360eval_nrf52811.md | 0 .../unverified/arm_ubx_bmd380eval_nrf52840.md | 0 .../unverified/arm_ubx_evkannab1_nrf52832.md | 0 .../unverified/arm_ubx_evkninab1_nrf52832.md | 0 .../unverified/arm_ubx_evkninab3_nrf52840.md | 0 .../unverified/arm_ubx_evkninab4_nrf52833.md | 0 .../unverified/arm_udoo_neo_full_m4.md | 0 .../6-catalog/unverified/arm_usb_kw24d512.md | 0 .../6-catalog/unverified/arm_v2m_beetle.md | 0 .../6-catalog/unverified/arm_v2m_musca_b1.md | 0 .../6-catalog/unverified/arm_v2m_musca_s1.md | 0 .../6-catalog/unverified/arm_vmu_rt1170.md | 0 .../6-catalog/unverified/arm_warp7_m4.md | 0 .../unverified/arm_waveshare_open103z.md | 0 .../unverified/arm_we_ophelia1ev_nrf52805.md | 0 .../unverified/arm_we_proteus2ev_nrf52832.md | 0 .../unverified/arm_we_proteus3ev_nrf52840.md | 0 .../6-catalog/unverified/arm_wio_terminal.md | 0 .../6-catalog/unverified/arm_xiao_ble.md | 0 .../unverified/arm_xmc45_relax_kit.md | 0 .../unverified/arm_xmc47_relax_kit.md | 0 .../hardware/6-catalog/unverified/arm_zybo.md | 0 .../6-catalog/unverified/mips_qemu_malta.md | 0 .../unverified/nios2_altera_max10.md | 0 .../6-catalog/unverified/nios2_qemu_nios2.md | 0 .../6-catalog/unverified/posix_common.md | 0 .../6-catalog/unverified/posix_doc.md | 0 .../unverified/posix_native_posix.md | 0 .../6-catalog/unverified/posix_native_sim.md | 0 .../6-catalog/unverified/posix_nrf_bsim.md | 0 .../unverified/riscv_adp_xc7k_ae350.md | 0 .../unverified/riscv_esp32c3_devkitm.md | 0 .../unverified/riscv_esp32c3_luatos_core.md | 0 .../unverified/riscv_gd32vf103c_starter.md | 0 .../unverified/riscv_gd32vf103v_eval.md | 0 .../6-catalog/unverified/riscv_hifive1.md | 0 .../unverified/riscv_hifive1_revb.md | 0 .../unverified/riscv_hifive_unleashed.md | 0 .../unverified/riscv_hifive_unmatched.md | 0 .../unverified/riscv_icev_wireless.md | 0 .../6-catalog/unverified/riscv_it82xx2_evb.md | 0 .../6-catalog/unverified/riscv_it8xxx2_evb.md | 0 .../unverified/riscv_litex_vexriscv.md | 0 .../6-catalog/unverified/riscv_longan_nano.md | 0 .../6-catalog/unverified/riscv_m2gl025_miv.md | 0 .../6-catalog/unverified/riscv_mpfs_icicle.md | 0 .../6-catalog/unverified/riscv_neorv32.md | 0 .../6-catalog/unverified/riscv_niosv_g.md | 0 .../6-catalog/unverified/riscv_niosv_m.md | 0 .../unverified/riscv_opentitan_earlgrey.md | 0 .../unverified/riscv_qemu_riscv32.md | 0 .../unverified/riscv_qemu_riscv32e.md | 0 .../unverified/riscv_qemu_riscv64.md | 0 .../6-catalog/unverified/riscv_rv32m1_vega.md | 0 .../riscv_sparkfun_red_v_things_plus.md | 0 .../6-catalog/unverified/riscv_stamp_c3.md | 0 .../unverified/riscv_titanium_ti60_f225.md | 0 .../unverified/riscv_tlsr9518adk80d.md | 0 .../unverified/riscv_xiao_esp32c3.md | 0 .../unverified/sparc_generic_leon3.md | 0 .../6-catalog/unverified/sparc_gr716a_mini.md | 0 .../6-catalog/unverified/sparc_qemu_leon3.md | 0 .../hardware/6-catalog/unverified/x86_acrn.md | 0 .../6-catalog/unverified/x86_common.md | 0 .../6-catalog/unverified/x86_intel_adl.md | 0 .../6-catalog/unverified/x86_intel_ehl.md | 0 .../6-catalog/unverified/x86_intel_ish.md | 0 .../6-catalog/unverified/x86_intel_rpl.md | 0 .../6-catalog/unverified/x86_qemu_x86.md | 0 .../6-catalog/unverified/x86_up_squared.md | 0 .../unverified/xtensa_esp32_devkitc_wroom.md | 0 .../unverified/xtensa_esp32_devkitc_wrover.md | 0 .../unverified/xtensa_esp32_ethernet_kit.md | 0 .../6-catalog/unverified/xtensa_esp32_net.md | 0 .../unverified/xtensa_esp32s2_franzininho.md | 0 .../unverified/xtensa_esp32s2_saola.md | 0 .../unverified/xtensa_esp32s3_devkitm.md | 0 .../unverified/xtensa_esp32s3_luatos_core.md | 0 .../unverified/xtensa_esp_wrover_kit.md | 0 .../xtensa_heltec_wifi_lora32_v2.md | 0 .../xtensa_intel_adsp_ace15_mtpm.md | 0 .../unverified/xtensa_intel_adsp_ace20_lnl.md | 0 .../unverified/xtensa_intel_adsp_cavs25.md | 0 .../unverified/xtensa_m5stack_core2.md | 0 .../unverified/xtensa_m5stickc_plus.md | 0 .../unverified/xtensa_nxp_adsp_imx8.md | 0 .../unverified/xtensa_nxp_adsp_imx8m.md | 0 .../unverified/xtensa_nxp_adsp_imx8x.md | 0 .../6-catalog/unverified/xtensa_odroid_go.md | 0 .../unverified/xtensa_olimex_esp32_evb.md | 0 .../unverified/xtensa_qemu_xtensa.md | 0 .../unverified/xtensa_xiao_esp32s3.md | 0 .../6-catalog/unverified/xtensa_xt-sim.md | 0 .../6-catalog/unverified/xtensa_yd_esp32.md | 0 .../6-catalog/verified/_category_.yml | 0 .../arm_circuitdojo_feather_nrf9160.md | 0 .../1-home.md => firmware/hardware/README.md} | 2 +- .../hardware/assets/boards.json | 0 .../hardware/assets/hardware-catalog.css | 0 .../hardware/assets/img/magnifier.svg | 0 docs/getting-started/1-overview.md | 2 +- docs/partials-common/prerequisites-device.md | 2 +- .../unused/install-device-toolchain.md | 2 +- docusaurus.config.js | 6 ---- scripts/device-catalog/index.js | 4 +-- sidebars.js | 27 +++--------------- 552 files changed, 24 insertions(+), 49 deletions(-) rename docs/{ => firmware}/hardware/2-esp32/1-espidf-quickstart/2-set-up-espidf.md (57%) rename docs/{ => firmware}/hardware/2-esp32/1-espidf-quickstart/3-flash-sample.md (100%) rename docs/{ => firmware}/hardware/2-esp32/1-espidf-quickstart/4-ota.md (100%) rename docs/{ => firmware}/hardware/2-esp32/1-espidf-quickstart/5-cloud-data.md (100%) rename docs/{ => firmware}/hardware/2-esp32/1-espidf-quickstart/README.md (100%) rename docs/{ => firmware}/hardware/2-esp32/1-espidf-quickstart/_category_.yml (100%) rename docs/{ => firmware}/hardware/2-esp32/1-espidf-quickstart/_partials/install-espidf-environment.md (100%) rename docs/{ => firmware}/hardware/2-esp32/1-espidf-quickstart/_partials/install-espidf.md (100%) rename docs/{ => firmware}/hardware/2-esp32/1-espidf-quickstart/_partials/install-golioth-firmware-sdk.md (100%) rename docs/{ => firmware}/hardware/2-esp32/1-espidf-quickstart/_partials/install-sample-build.md (100%) rename docs/{ => firmware}/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-create-artifact.png (100%) rename docs/{ => firmware}/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-create-release.png (100%) rename docs/{ => firmware}/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-report-firmware-revision.png (100%) rename docs/{ => firmware}/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-rollout.png (100%) rename docs/{ => firmware}/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-logs.png (100%) rename docs/{ => firmware}/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-state.png (100%) rename docs/{ => firmware}/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-stream.png (100%) rename docs/{ => firmware}/hardware/2-esp32/2-zephyr-quickstart/2-set-up-zephyr.md (90%) rename docs/{ => firmware}/hardware/2-esp32/2-zephyr-quickstart/3-flash-sample.md (100%) rename docs/{ => firmware}/hardware/2-esp32/2-zephyr-quickstart/4-view-logs.md (100%) rename docs/{ => firmware}/hardware/2-esp32/2-zephyr-quickstart/README.md (100%) rename docs/{ => firmware}/hardware/2-esp32/2-zephyr-quickstart/_category_.yml (100%) rename docs/{ => firmware}/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-unix.md (100%) rename docs/{ => firmware}/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-windows.md (100%) rename docs/{ => firmware}/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain.md (60%) rename docs/{ => firmware}/hardware/2-esp32/README.md (100%) rename docs/{ => firmware}/hardware/2-esp32/_category_.yml (100%) rename docs/{ => firmware}/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/2-set-up-zephyr.md (100%) rename docs/{ => firmware}/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/3-flash-sample.md (100%) rename docs/{ => firmware}/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/4-view-logs.md (100%) rename docs/{ => firmware}/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/README.md (100%) rename docs/{ => firmware}/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/_category_.yml (100%) rename docs/{ => firmware}/hardware/3-mimxrt1060_evkb/README.md (100%) rename docs/{ => firmware}/hardware/3-mimxrt1060_evkb/_category_.yml (100%) rename docs/{ => firmware}/hardware/4-nrf91/2-zephyr-quickstart/2-set-up-zephyr.md (86%) rename docs/{ => firmware}/hardware/4-nrf91/2-zephyr-quickstart/3-hardware-programmer.md (100%) rename docs/{ => firmware}/hardware/4-nrf91/2-zephyr-quickstart/4-carrier-setup.md (100%) rename docs/{ => firmware}/hardware/4-nrf91/2-zephyr-quickstart/5-flash-sample.md (100%) rename docs/{ => firmware}/hardware/4-nrf91/2-zephyr-quickstart/6-view-logs.md (100%) rename docs/{ => firmware}/hardware/4-nrf91/2-zephyr-quickstart/README.md (100%) rename docs/{ => firmware}/hardware/4-nrf91/2-zephyr-quickstart/_category_.yml (100%) rename docs/{ => firmware}/hardware/4-nrf91/2-zephyr-quickstart/_partials/build-fw-nrf91.md (100%) rename docs/{ => firmware}/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk-unix.md (100%) rename docs/{ => firmware}/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk-windows.md (100%) rename docs/{ => firmware}/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk.md (74%) rename docs/{ => firmware}/hardware/4-nrf91/2-zephyr-quickstart/_partials/setup-west-nrf91-windows.md (100%) rename docs/{ => firmware}/hardware/4-nrf91/2-zephyr-quickstart/_partials/setup-west-nrf91.md (90%) rename docs/{ => firmware}/hardware/4-nrf91/2-zephyr-quickstart/assets/LTE-Link-Monitor.png (100%) rename docs/{ => firmware}/hardware/4-nrf91/README.md (100%) rename docs/{ => firmware}/hardware/4-nrf91/_category_.yml (100%) rename docs/{ => firmware}/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md (100%) rename docs/{ => firmware}/hardware/5-virtual-device/2-zephyr-quickstart/4-qemu-install.md (100%) rename docs/{ => firmware}/hardware/5-virtual-device/2-zephyr-quickstart/5-simulating-devices-qemu.md (91%) rename docs/{ => firmware}/hardware/5-virtual-device/2-zephyr-quickstart/6-view-logs.md (100%) rename docs/{ => firmware}/hardware/5-virtual-device/2-zephyr-quickstart/README.md (100%) rename docs/{ => firmware}/hardware/5-virtual-device/2-zephyr-quickstart/_category_.yml (100%) rename docs/{ => firmware}/hardware/5-virtual-device/2-zephyr-quickstart/_partials/check-toolchain.md (100%) rename docs/{ => firmware}/hardware/5-virtual-device/README.md (100%) rename docs/{ => firmware}/hardware/5-virtual-device/_category_.yml (100%) rename docs/{ => firmware}/hardware/6-catalog/6-hardware-catalog.mdx (100%) rename docs/{ => firmware}/hardware/6-catalog/_category_.yml (100%) rename docs/{ => firmware}/hardware/6-catalog/continuously-verified/_category_.yml (100%) rename docs/{ => firmware}/hardware/6-catalog/continuously-verified/arm_mimxrt1060_evkb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/continuously-verified/arm_nrf9160dk_nrf9160.md (100%) rename docs/{ => firmware}/hardware/6-catalog/continuously-verified/arm_qemu_cortex_m3.md (100%) rename docs/{ => firmware}/hardware/6-catalog/continuously-verified/xtensa_esp32.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/_category_.yml (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arc_em_starterkit.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arc_emsdp.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arc_hsdk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arc_hsdk4xd.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arc_iotdk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arc_nsim.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arc_qemu_arc.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_bcm958402m2_a72.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_fvp_base_revc_2xaemv8a.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_fvp_baser_aemv8r.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex5_socdk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex_socdk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_khadas_edgev.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_mimx8mm_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_mimx8mn_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_mimx8mp_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_mimx93_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_nxp_ls1046ardb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_phycore_am62x_a53.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_qemu_cortex_a53.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_qemu_kvm_arm64.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_rcar_h3ulcb_ca57.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_rcar_salvator_xs_m3.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_rpi_4b.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm64_xenvm.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_96b_aerocore2.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_96b_argonkey.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_96b_avenger96.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_96b_carbon.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_96b_carbon_nrf51.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_96b_meerkat96.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_96b_neonkey.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_96b_nitrogen.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_96b_stm32_sensor_mez.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_96b_wistrio.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_acn52832.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_actinius_icarus.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_actinius_icarus_bee.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_actinius_icarus_som.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_actinius_icarus_som_dk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_adafruit_feather_m0_basic_proto.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_adafruit_feather_m0_lora.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_adafruit_feather_nrf52840.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_adafruit_feather_stm32f405.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_m4_express.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_nrf52840.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_adafruit_kb2040.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_adafruit_trinket_m0.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_am62x_m4.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_apollo4p_blue_kxr_evb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_apollo4p_evb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_arduino_due.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_arduino_giga_r1.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_arduino_mkrzero.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_arduino_nano_33_ble.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_arduino_nano_33_iot.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_arduino_nicla_sense_me.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_arduino_portenta_h7.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_arduino_zero.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_arty.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_ast1030_evb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_atsamc21n_xpro.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_atsamd20_xpro.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_atsamd21_xpro.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_atsame54_xpro.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_atsaml21_xpro.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_atsamr21_xpro.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_atsamr34_xpro.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_az3166_iotdevkit.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_b_g474e_dpow1.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_b_l072z_lrwan1.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_b_l4s5i_iot01a.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_b_u585i_iot02a.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_bbc_microbit.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_bbc_microbit_v2.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_bcm958401m2.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_bcm958402m2_m7.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_beagle_bcf.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_bl5340_dvk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_bl652_dvk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_bl653_dvk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_bl654_dvk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_bl654_sensor_board.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_bl654_usb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_black_f407ve.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_black_f407zg_pro.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_blackpill_f401cc.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_blackpill_f401ce.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_blackpill_f411ce.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_blueclover_plt_demo_v2_nrf52832.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_bt510.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_bt610.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_cc1352p1_launchxl.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_cc1352r1_launchxl.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_cc1352r_sensortag.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_cc26x2r1_launchxl.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_cc3220sf_launchxl.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_cc3235sf_launchxl.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_colibri_imx7d_m4.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_contextualelectronics_abc.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_cy8ckit_062_ble.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_cy8ckit_062_wifi_bt.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_cy8ckit_062s4.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_cy8cproto_062_4343w.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_cy8cproto_063_ble.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_cyclonev_socdk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_da14695_dk_usb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_da1469x_dk_pro.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_decawave_dwm1001_dev.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_degu_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_disco_l475_iot1.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_dragino_lsn50.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_dragino_nbsn95.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_ebyte_e73_tbb_nrf52832.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_efm32gg_sltb009a.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_efm32gg_slwstk6121a.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_efm32gg_stk3701a.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_efm32hg_slstk3400a.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_efm32pg_stk3401a.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_efm32pg_stk3402a.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_efm32wg_stk3800.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_efr32_radio.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_efr32_thunderboard.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_efr32mg_sltb004a.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_efr32xg24_dk2601b.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_ev11l78a.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_faze.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_frdm_k22f.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_frdm_k64f.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_frdm_k82f.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_frdm_kl25z.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_frdm_kw41z.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_fvp_baser_aemv8r_aarch32.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_gd32a503v_eval.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_gd32e103v_eval.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_gd32e507v_start.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_gd32e507z_eval.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_gd32f350r_eval.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_gd32f403z_eval.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_gd32f407v_start.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_gd32f450i_eval.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_gd32f450v_start.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_gd32f450z_eval.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_gd32f470i_eval.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_gd32l233r_eval.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_google_dragonclaw.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_google_kukui.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_google_twinkie_v2.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_hexiwear_k64.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_hexiwear_kw40z.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_holyiot_yj16019.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_ip_k66f.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_kv260_r5.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_legend.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_lora_e5_dev_board.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_lpcxpresso11u68.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_lpcxpresso51u68.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_lpcxpresso54114.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_lpcxpresso55s06.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_lpcxpresso55s16.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_lpcxpresso55s28.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_lpcxpresso55s36.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_lpcxpresso55s69.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mec1501modular_assy6885.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mec15xxevb_assy6853.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mec172xevb_assy6906.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mec172xmodular_assy6930.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mercury_xu.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mg100.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mikroe_clicker_2.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mikroe_mini_m4_for_stm32.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimx8mm_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimx8mm_phyboard_polis.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimx8mp_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimx8mp_phyboard_pollux.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimx8mq_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimxrt1010_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimxrt1015_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimxrt1020_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimxrt1024_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimxrt1040_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimxrt1050_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimxrt1060_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimxrt1062_fmurt6.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimxrt1064_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimxrt1160_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimxrt1170_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimxrt595_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mimxrt685_evk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mm_feather.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mm_swiftio.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mps2_an385.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mps2_an521.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mps3_an547.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_mr_canhubk3.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_msp_exp432p401r_launchxl.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_npcx4m8f_evb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_npcx7m6fb_evb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_npcx9m6f_evb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf21540dk_nrf52840.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf51_ble400.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf51_blenano.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf51_vbluno51.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf51dk_nrf51422.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf51dongle_nrf51422.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf52832_mdk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52820.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52833.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf52840_blip.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf52840_mdk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf52840_mdk_usb_dongle.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf52840_papyr.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52811.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52840.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf52840dongle_nrf52840.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf52_adafruit_feather.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf52_blenano2.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf52_sparkfun.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf52_vbluno52.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf52dk_nrf52805.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf52dk_nrf52810.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf52dk_nrf52832.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf5340_audio_dk_nrf5340.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf5340dk_nrf5340.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf9160_innblue21.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf9160_innblue22.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf9160dk_nrf52840.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nrf9161dk_nrf9161.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_c031c6.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f030r8.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f031k6.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f042k6.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f070rb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f091rc.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f103rb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f207zg.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f302r8.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f303k8.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f303re.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f334r8.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f401re.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f410rb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f411re.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f412zg.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f413zh.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f429zi.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f446re.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f446ze.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f746zg.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f756zg.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_f767zi.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_g031k8.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_g070rb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_g071rb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_g0b1re.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_g431rb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_g474re.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_h563zi.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_h723zg.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_h743zi.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_h745zi_q.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_h753zi.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_h7a3zi_q.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_l011k4.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_l031k6.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_l053r8.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_l073rz.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_l152re.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_l412rb_p.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_l432kc.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_l433rc_p.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_l452re.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_l476rg.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_l496zg.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_l4a6zg.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_l4r5zi.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_l552ze_q.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_u575zi_q.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_u5a5zj_q.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_wb55rg.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_wba52cg.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nucleo_wl55jc.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_numaker_pfm_m467.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_nuvoton_pfm_m487.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_olimex_lora_stm32wl_devkit.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_olimex_stm32_e407.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_olimex_stm32_h103.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_olimex_stm32_h405.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_olimex_stm32_h407.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_olimex_stm32_p405.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_olimexino_stm32.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_pan1770_evb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_pan1780_evb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_pan1781_evb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_pan1782_evb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_pandora_stm32l475.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_particle_argon.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_particle_boron.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_particle_xenon.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_pico_pi_m4.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_pinetime_devkit0.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_pinnacle_100_dvk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_qemu_cortex_a9.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_qemu_cortex_m0.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_qemu_cortex_r5.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_qomu.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_quick_feather.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_rak4631_nrf52840.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_rak5010_nrf52840.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_33_nrf52833.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_40_nrf52840.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_raytac_mdbt53_db_40_nrf5340.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_raytac_mdbt53v_db_40_nrf5340.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_rcar_h3_salvatorx.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_rcar_h3ulcb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_rddrone_fmuk66.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_reel_board.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_rm1xx_dvk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_ronoth_lodev.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_rpi_pico.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_ruuvi_ruuvitag.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_s32z270dc2_r52.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_sam4e_xpro.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_sam4l_ek.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_sam4s_xplained.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_sam_e70_xplained.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_sam_v71_xult.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_scobc_module1.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_seeeduino_xiao.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_segger_trb_stm32f407.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_sensortile_box.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_serpente.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_sparkfun_pro_micro_rp2040.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_sparkfun_thing_plus_nrf9160.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_steval_fcu001v1.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm3210c_eval.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32373c_eval.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32_min_dev.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32f030_demo.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32f072_eval.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32f072b_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32f0_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32f103_mini.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32f3_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32f3_seco_d23.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32f401_mini.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32f411e_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32f412g_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32f429i_disc1.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32f469i_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32f4_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32f723e_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32f746g_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32f7508_dk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32f769i_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32g0316_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32g071b_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32g081b_eval.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32h573i_dk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32h735g_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32h747i_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32h7b3i_dk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32l1_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32l476g_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32l496g_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32l562e_dk.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32mp157c_dk2.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_stm32vl_disco.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_swan_r5.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_tdk_robokit1.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_teensy4.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_thingy52_nrf52832.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_thingy53_nrf5340.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_twr_ke18f.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_twr_kv58f220m.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_ubx_bmd300eval_nrf52832.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_ubx_bmd330eval_nrf52810.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_ubx_bmd340eval_nrf52840.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_ubx_bmd345eval_nrf52840.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_ubx_bmd360eval_nrf52811.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_ubx_bmd380eval_nrf52840.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_ubx_evkannab1_nrf52832.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_ubx_evkninab1_nrf52832.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_ubx_evkninab3_nrf52840.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_ubx_evkninab4_nrf52833.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_udoo_neo_full_m4.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_usb_kw24d512.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_v2m_beetle.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_v2m_musca_b1.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_v2m_musca_s1.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_vmu_rt1170.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_warp7_m4.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_waveshare_open103z.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_we_ophelia1ev_nrf52805.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_we_proteus2ev_nrf52832.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_we_proteus3ev_nrf52840.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_wio_terminal.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_xiao_ble.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_xmc45_relax_kit.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_xmc47_relax_kit.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/arm_zybo.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/mips_qemu_malta.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/nios2_altera_max10.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/nios2_qemu_nios2.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/posix_common.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/posix_doc.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/posix_native_posix.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/posix_native_sim.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/posix_nrf_bsim.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_adp_xc7k_ae350.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_esp32c3_devkitm.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_esp32c3_luatos_core.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_gd32vf103c_starter.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_gd32vf103v_eval.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_hifive1.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_hifive1_revb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_hifive_unleashed.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_hifive_unmatched.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_icev_wireless.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_it82xx2_evb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_it8xxx2_evb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_litex_vexriscv.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_longan_nano.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_m2gl025_miv.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_mpfs_icicle.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_neorv32.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_niosv_g.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_niosv_m.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_opentitan_earlgrey.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_qemu_riscv32.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_qemu_riscv32e.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_qemu_riscv64.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_rv32m1_vega.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_sparkfun_red_v_things_plus.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_stamp_c3.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_titanium_ti60_f225.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_tlsr9518adk80d.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/riscv_xiao_esp32c3.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/sparc_generic_leon3.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/sparc_gr716a_mini.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/sparc_qemu_leon3.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/x86_acrn.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/x86_common.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/x86_intel_adl.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/x86_intel_ehl.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/x86_intel_ish.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/x86_intel_rpl.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/x86_qemu_x86.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/x86_up_squared.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wroom.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wrover.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_esp32_ethernet_kit.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_esp32_net.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_esp32s2_franzininho.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_esp32s2_saola.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_esp32s3_devkitm.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_esp32s3_luatos_core.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_esp_wrover_kit.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_heltec_wifi_lora32_v2.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_intel_adsp_ace15_mtpm.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_intel_adsp_ace20_lnl.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_intel_adsp_cavs25.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_m5stack_core2.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_m5stickc_plus.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8m.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8x.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_odroid_go.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_olimex_esp32_evb.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_qemu_xtensa.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_xiao_esp32s3.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_xt-sim.md (100%) rename docs/{ => firmware}/hardware/6-catalog/unverified/xtensa_yd_esp32.md (100%) rename docs/{ => firmware}/hardware/6-catalog/verified/_category_.yml (100%) rename docs/{ => firmware}/hardware/6-catalog/verified/arm_circuitdojo_feather_nrf9160.md (100%) rename docs/{hardware/1-home.md => firmware/hardware/README.md} (99%) rename docs/{ => firmware}/hardware/assets/boards.json (100%) rename docs/{ => firmware}/hardware/assets/hardware-catalog.css (100%) rename docs/{ => firmware}/hardware/assets/img/magnifier.svg (100%) diff --git a/docs/hardware/2-esp32/1-espidf-quickstart/2-set-up-espidf.md b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/2-set-up-espidf.md similarity index 57% rename from docs/hardware/2-esp32/1-espidf-quickstart/2-set-up-espidf.md rename to docs/firmware/hardware/2-esp32/1-espidf-quickstart/2-set-up-espidf.md index dba12f7a..75a310da 100644 --- a/docs/hardware/2-esp32/1-espidf-quickstart/2-set-up-espidf.md +++ b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/2-set-up-espidf.md @@ -13,24 +13,24 @@ the process of installing both the ESP-IDF and the Golioth Firmware SDK. ### Install ESP-IDF -import SetupEspIdf from '/docs/hardware/2-esp32/1-espidf-quickstart/\_partials/install-espidf.md' +import SetupEspIdf from '/docs/firmware/hardware/2-esp32/1-espidf-quickstart/\_partials/install-espidf.md' ### Install Golioth Firmware SDK -import InstallFirmwareSDK from '/docs/hardware/2-esp32/1-espidf-quickstart/\_partials/install-golioth-firmware-sdk.md' +import InstallFirmwareSDK from '/docs/firmware/hardware/2-esp32/1-espidf-quickstart/\_partials/install-golioth-firmware-sdk.md' ### Set the ESP IDF environment variables -import InstallEspIdfEnv from '/docs/hardware/2-esp32/1-espidf-quickstart/\_partials/install-espidf-environment.md' +import InstallEspIdfEnv from '/docs/firmware/hardware/2-esp32/1-espidf-quickstart/\_partials/install-espidf-environment.md' ### Sample build -import SampleBuild from '/docs/hardware/2-esp32/1-espidf-quickstart/\_partials/install-sample-build.md' +import SampleBuild from '/docs/firmware/hardware/2-esp32/1-espidf-quickstart/\_partials/install-sample-build.md' diff --git a/docs/hardware/2-esp32/1-espidf-quickstart/3-flash-sample.md b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/3-flash-sample.md similarity index 100% rename from docs/hardware/2-esp32/1-espidf-quickstart/3-flash-sample.md rename to docs/firmware/hardware/2-esp32/1-espidf-quickstart/3-flash-sample.md diff --git a/docs/hardware/2-esp32/1-espidf-quickstart/4-ota.md b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/4-ota.md similarity index 100% rename from docs/hardware/2-esp32/1-espidf-quickstart/4-ota.md rename to docs/firmware/hardware/2-esp32/1-espidf-quickstart/4-ota.md diff --git a/docs/hardware/2-esp32/1-espidf-quickstart/5-cloud-data.md b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/5-cloud-data.md similarity index 100% rename from docs/hardware/2-esp32/1-espidf-quickstart/5-cloud-data.md rename to docs/firmware/hardware/2-esp32/1-espidf-quickstart/5-cloud-data.md diff --git a/docs/hardware/2-esp32/1-espidf-quickstart/README.md b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/README.md similarity index 100% rename from docs/hardware/2-esp32/1-espidf-quickstart/README.md rename to docs/firmware/hardware/2-esp32/1-espidf-quickstart/README.md diff --git a/docs/hardware/2-esp32/1-espidf-quickstart/_category_.yml b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/_category_.yml similarity index 100% rename from docs/hardware/2-esp32/1-espidf-quickstart/_category_.yml rename to docs/firmware/hardware/2-esp32/1-espidf-quickstart/_category_.yml diff --git a/docs/hardware/2-esp32/1-espidf-quickstart/_partials/install-espidf-environment.md b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/_partials/install-espidf-environment.md similarity index 100% rename from docs/hardware/2-esp32/1-espidf-quickstart/_partials/install-espidf-environment.md rename to docs/firmware/hardware/2-esp32/1-espidf-quickstart/_partials/install-espidf-environment.md diff --git a/docs/hardware/2-esp32/1-espidf-quickstart/_partials/install-espidf.md b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/_partials/install-espidf.md similarity index 100% rename from docs/hardware/2-esp32/1-espidf-quickstart/_partials/install-espidf.md rename to docs/firmware/hardware/2-esp32/1-espidf-quickstart/_partials/install-espidf.md diff --git a/docs/hardware/2-esp32/1-espidf-quickstart/_partials/install-golioth-firmware-sdk.md b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/_partials/install-golioth-firmware-sdk.md similarity index 100% rename from docs/hardware/2-esp32/1-espidf-quickstart/_partials/install-golioth-firmware-sdk.md rename to docs/firmware/hardware/2-esp32/1-espidf-quickstart/_partials/install-golioth-firmware-sdk.md diff --git a/docs/hardware/2-esp32/1-espidf-quickstart/_partials/install-sample-build.md b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/_partials/install-sample-build.md similarity index 100% rename from docs/hardware/2-esp32/1-espidf-quickstart/_partials/install-sample-build.md rename to docs/firmware/hardware/2-esp32/1-espidf-quickstart/_partials/install-sample-build.md diff --git a/docs/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-create-artifact.png b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-create-artifact.png similarity index 100% rename from docs/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-create-artifact.png rename to docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-create-artifact.png diff --git a/docs/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-create-release.png b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-create-release.png similarity index 100% rename from docs/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-create-release.png rename to docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-create-release.png diff --git a/docs/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-report-firmware-revision.png b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-report-firmware-revision.png similarity index 100% rename from docs/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-report-firmware-revision.png rename to docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-report-firmware-revision.png diff --git a/docs/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-rollout.png b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-rollout.png similarity index 100% rename from docs/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-rollout.png rename to docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-rollout.png diff --git a/docs/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-logs.png b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-logs.png similarity index 100% rename from docs/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-logs.png rename to docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-logs.png diff --git a/docs/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-state.png b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-state.png similarity index 100% rename from docs/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-state.png rename to docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-state.png diff --git a/docs/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-stream.png b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-stream.png similarity index 100% rename from docs/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-stream.png rename to docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-stream.png diff --git a/docs/hardware/2-esp32/2-zephyr-quickstart/2-set-up-zephyr.md b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/2-set-up-zephyr.md similarity index 90% rename from docs/hardware/2-esp32/2-zephyr-quickstart/2-set-up-zephyr.md rename to docs/firmware/hardware/2-esp32/2-zephyr-quickstart/2-set-up-zephyr.md index 19424508..dc79c7e2 100644 --- a/docs/hardware/2-esp32/2-zephyr-quickstart/2-set-up-zephyr.md +++ b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/2-set-up-zephyr.md @@ -28,7 +28,7 @@ import InstallZephyrSDKtoolchain from '/docs/partials-common/install-zephyr-sdk- ### Install Espressif (ESP32) Binary Blobs -import InstallEspressifToolchain from '/docs/hardware/2-esp32/2-zephyr-quickstart/\_partials/install-espressif-toolchain.md' +import InstallEspressifToolchain from '/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/\_partials/install-espressif-toolchain.md' diff --git a/docs/hardware/2-esp32/2-zephyr-quickstart/3-flash-sample.md b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/3-flash-sample.md similarity index 100% rename from docs/hardware/2-esp32/2-zephyr-quickstart/3-flash-sample.md rename to docs/firmware/hardware/2-esp32/2-zephyr-quickstart/3-flash-sample.md diff --git a/docs/hardware/2-esp32/2-zephyr-quickstart/4-view-logs.md b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/4-view-logs.md similarity index 100% rename from docs/hardware/2-esp32/2-zephyr-quickstart/4-view-logs.md rename to docs/firmware/hardware/2-esp32/2-zephyr-quickstart/4-view-logs.md diff --git a/docs/hardware/2-esp32/2-zephyr-quickstart/README.md b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/README.md similarity index 100% rename from docs/hardware/2-esp32/2-zephyr-quickstart/README.md rename to docs/firmware/hardware/2-esp32/2-zephyr-quickstart/README.md diff --git a/docs/hardware/2-esp32/2-zephyr-quickstart/_category_.yml b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_category_.yml similarity index 100% rename from docs/hardware/2-esp32/2-zephyr-quickstart/_category_.yml rename to docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_category_.yml diff --git a/docs/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-unix.md b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-unix.md similarity index 100% rename from docs/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-unix.md rename to docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-unix.md diff --git a/docs/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-windows.md b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-windows.md similarity index 100% rename from docs/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-windows.md rename to docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-windows.md diff --git a/docs/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain.md b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain.md similarity index 60% rename from docs/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain.md rename to docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain.md index 1c5899b4..331e39de 100644 --- a/docs/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain.md +++ b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain.md @@ -10,8 +10,8 @@ values={[ {label: 'Windows', value: 'windows'}, ]}> -import InstallEspressifToolchainUnix from '/docs/hardware/2-esp32/2-zephyr-quickstart/\_partials/install-espressif-toolchain-unix.md' -import InstallEspressifToolchainWindows from '/docs/hardware/2-esp32/2-zephyr-quickstart/\_partials/install-espressif-toolchain-windows.md' +import InstallEspressifToolchainUnix from '/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/\_partials/install-espressif-toolchain-unix.md' +import InstallEspressifToolchainWindows from '/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/\_partials/install-espressif-toolchain-windows.md' diff --git a/docs/hardware/2-esp32/README.md b/docs/firmware/hardware/2-esp32/README.md similarity index 100% rename from docs/hardware/2-esp32/README.md rename to docs/firmware/hardware/2-esp32/README.md diff --git a/docs/hardware/2-esp32/_category_.yml b/docs/firmware/hardware/2-esp32/_category_.yml similarity index 100% rename from docs/hardware/2-esp32/_category_.yml rename to docs/firmware/hardware/2-esp32/_category_.yml diff --git a/docs/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/2-set-up-zephyr.md b/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/2-set-up-zephyr.md similarity index 100% rename from docs/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/2-set-up-zephyr.md rename to docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/2-set-up-zephyr.md diff --git a/docs/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/3-flash-sample.md b/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/3-flash-sample.md similarity index 100% rename from docs/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/3-flash-sample.md rename to docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/3-flash-sample.md diff --git a/docs/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/4-view-logs.md b/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/4-view-logs.md similarity index 100% rename from docs/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/4-view-logs.md rename to docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/4-view-logs.md diff --git a/docs/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/README.md b/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/README.md similarity index 100% rename from docs/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/README.md rename to docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/README.md diff --git a/docs/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/_category_.yml b/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/_category_.yml similarity index 100% rename from docs/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/_category_.yml rename to docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/_category_.yml diff --git a/docs/hardware/3-mimxrt1060_evkb/README.md b/docs/firmware/hardware/3-mimxrt1060_evkb/README.md similarity index 100% rename from docs/hardware/3-mimxrt1060_evkb/README.md rename to docs/firmware/hardware/3-mimxrt1060_evkb/README.md diff --git a/docs/hardware/3-mimxrt1060_evkb/_category_.yml b/docs/firmware/hardware/3-mimxrt1060_evkb/_category_.yml similarity index 100% rename from docs/hardware/3-mimxrt1060_evkb/_category_.yml rename to docs/firmware/hardware/3-mimxrt1060_evkb/_category_.yml diff --git a/docs/hardware/4-nrf91/2-zephyr-quickstart/2-set-up-zephyr.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/2-set-up-zephyr.md similarity index 86% rename from docs/hardware/4-nrf91/2-zephyr-quickstart/2-set-up-zephyr.md rename to docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/2-set-up-zephyr.md index f70024ff..bdac0979 100644 --- a/docs/hardware/4-nrf91/2-zephyr-quickstart/2-set-up-zephyr.md +++ b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/2-set-up-zephyr.md @@ -14,13 +14,13 @@ The nRF9160 Feather and all Nordic Semiconductor devices utilizing Zephyr requir ### Install West -import SetupWestNRF91 from '/docs/hardware/4-nrf91/2-zephyr-quickstart/\_partials/setup-west-nrf91.md' +import SetupWestNRF91 from '/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/\_partials/setup-west-nrf91.md' ### Installing the NRF Connect SDK -import InstallNRFSDK from '/docs/hardware/4-nrf91/2-zephyr-quickstart/\_partials/install-nrf-connect-sdk.md' +import InstallNRFSDK from '/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/\_partials/install-nrf-connect-sdk.md' @@ -36,7 +36,7 @@ import InstallZephyrSDKtoolchain from '/docs/partials-common/install-zephyr-sdk- Your system is all set up and ready to start building & flashing with Zephyr. Verify by building a minimal sample for the nRF9160 DK: -import BuildFirmwareFor9160 from '/docs/hardware/4-nrf91/2-zephyr-quickstart/\_partials/build-fw-nrf91.md' +import BuildFirmwareFor9160 from '/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/\_partials/build-fw-nrf91.md' diff --git a/docs/hardware/4-nrf91/2-zephyr-quickstart/3-hardware-programmer.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/3-hardware-programmer.md similarity index 100% rename from docs/hardware/4-nrf91/2-zephyr-quickstart/3-hardware-programmer.md rename to docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/3-hardware-programmer.md diff --git a/docs/hardware/4-nrf91/2-zephyr-quickstart/4-carrier-setup.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/4-carrier-setup.md similarity index 100% rename from docs/hardware/4-nrf91/2-zephyr-quickstart/4-carrier-setup.md rename to docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/4-carrier-setup.md diff --git a/docs/hardware/4-nrf91/2-zephyr-quickstart/5-flash-sample.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/5-flash-sample.md similarity index 100% rename from docs/hardware/4-nrf91/2-zephyr-quickstart/5-flash-sample.md rename to docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/5-flash-sample.md diff --git a/docs/hardware/4-nrf91/2-zephyr-quickstart/6-view-logs.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/6-view-logs.md similarity index 100% rename from docs/hardware/4-nrf91/2-zephyr-quickstart/6-view-logs.md rename to docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/6-view-logs.md diff --git a/docs/hardware/4-nrf91/2-zephyr-quickstart/README.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/README.md similarity index 100% rename from docs/hardware/4-nrf91/2-zephyr-quickstart/README.md rename to docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/README.md diff --git a/docs/hardware/4-nrf91/2-zephyr-quickstart/_category_.yml b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_category_.yml similarity index 100% rename from docs/hardware/4-nrf91/2-zephyr-quickstart/_category_.yml rename to docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_category_.yml diff --git a/docs/hardware/4-nrf91/2-zephyr-quickstart/_partials/build-fw-nrf91.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/build-fw-nrf91.md similarity index 100% rename from docs/hardware/4-nrf91/2-zephyr-quickstart/_partials/build-fw-nrf91.md rename to docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/build-fw-nrf91.md diff --git a/docs/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk-unix.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk-unix.md similarity index 100% rename from docs/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk-unix.md rename to docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk-unix.md diff --git a/docs/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk-windows.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk-windows.md similarity index 100% rename from docs/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk-windows.md rename to docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk-windows.md diff --git a/docs/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk.md similarity index 74% rename from docs/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk.md rename to docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk.md index 190fda69..2c3377ee 100644 --- a/docs/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk.md +++ b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk.md @@ -16,8 +16,8 @@ values={[ {label: 'Windows', value: 'windows'}, ]}> -import InstallNRFSDKUnix from '/docs/hardware/4-nrf91/2-zephyr-quickstart/\_partials/install-nrf-connect-sdk-unix.md' -import InstallNRFSDKWindows from '/docs/hardware/4-nrf91/2-zephyr-quickstart/\_partials/install-nrf-connect-sdk-windows.md' +import InstallNRFSDKUnix from '/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/\_partials/install-nrf-connect-sdk-unix.md' +import InstallNRFSDKWindows from '/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/\_partials/install-nrf-connect-sdk-windows.md' diff --git a/docs/hardware/4-nrf91/2-zephyr-quickstart/_partials/setup-west-nrf91-windows.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/setup-west-nrf91-windows.md similarity index 100% rename from docs/hardware/4-nrf91/2-zephyr-quickstart/_partials/setup-west-nrf91-windows.md rename to docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/setup-west-nrf91-windows.md diff --git a/docs/hardware/4-nrf91/2-zephyr-quickstart/_partials/setup-west-nrf91.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/setup-west-nrf91.md similarity index 90% rename from docs/hardware/4-nrf91/2-zephyr-quickstart/_partials/setup-west-nrf91.md rename to docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/setup-west-nrf91.md index c75e6d4f..4f30a070 100644 --- a/docs/hardware/4-nrf91/2-zephyr-quickstart/_partials/setup-west-nrf91.md +++ b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/setup-west-nrf91.md @@ -44,7 +44,7 @@ brew install cmake ninja gperf python3 ccache qemu dtc -import SetupWestNRF91Windows from '/docs/hardware/4-nrf91/2-zephyr-quickstart/\_partials/setup-west-nrf91-windows.md' +import SetupWestNRF91Windows from '/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/\_partials/setup-west-nrf91-windows.md' diff --git a/docs/hardware/4-nrf91/2-zephyr-quickstart/assets/LTE-Link-Monitor.png b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/assets/LTE-Link-Monitor.png similarity index 100% rename from docs/hardware/4-nrf91/2-zephyr-quickstart/assets/LTE-Link-Monitor.png rename to docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/assets/LTE-Link-Monitor.png diff --git a/docs/hardware/4-nrf91/README.md b/docs/firmware/hardware/4-nrf91/README.md similarity index 100% rename from docs/hardware/4-nrf91/README.md rename to docs/firmware/hardware/4-nrf91/README.md diff --git a/docs/hardware/4-nrf91/_category_.yml b/docs/firmware/hardware/4-nrf91/_category_.yml similarity index 100% rename from docs/hardware/4-nrf91/_category_.yml rename to docs/firmware/hardware/4-nrf91/_category_.yml diff --git a/docs/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md similarity index 100% rename from docs/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md rename to docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md diff --git a/docs/hardware/5-virtual-device/2-zephyr-quickstart/4-qemu-install.md b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/4-qemu-install.md similarity index 100% rename from docs/hardware/5-virtual-device/2-zephyr-quickstart/4-qemu-install.md rename to docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/4-qemu-install.md diff --git a/docs/hardware/5-virtual-device/2-zephyr-quickstart/5-simulating-devices-qemu.md b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/5-simulating-devices-qemu.md similarity index 91% rename from docs/hardware/5-virtual-device/2-zephyr-quickstart/5-simulating-devices-qemu.md rename to docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/5-simulating-devices-qemu.md index 9baa6273..6bf5eb23 100644 --- a/docs/hardware/5-virtual-device/2-zephyr-quickstart/5-simulating-devices-qemu.md +++ b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/5-simulating-devices-qemu.md @@ -17,7 +17,7 @@ import InstallZephyrSDK from '/docs/partials-common/install-zephyr-sdk.md' ### Toolchain check -import CheckToolchain from '/docs/hardware/5-virtual-device/2-zephyr-quickstart/\_partials/check-toolchain.md' +import CheckToolchain from '/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/\_partials/check-toolchain.md' diff --git a/docs/hardware/5-virtual-device/2-zephyr-quickstart/6-view-logs.md b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/6-view-logs.md similarity index 100% rename from docs/hardware/5-virtual-device/2-zephyr-quickstart/6-view-logs.md rename to docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/6-view-logs.md diff --git a/docs/hardware/5-virtual-device/2-zephyr-quickstart/README.md b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/README.md similarity index 100% rename from docs/hardware/5-virtual-device/2-zephyr-quickstart/README.md rename to docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/README.md diff --git a/docs/hardware/5-virtual-device/2-zephyr-quickstart/_category_.yml b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/_category_.yml similarity index 100% rename from docs/hardware/5-virtual-device/2-zephyr-quickstart/_category_.yml rename to docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/_category_.yml diff --git a/docs/hardware/5-virtual-device/2-zephyr-quickstart/_partials/check-toolchain.md b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/_partials/check-toolchain.md similarity index 100% rename from docs/hardware/5-virtual-device/2-zephyr-quickstart/_partials/check-toolchain.md rename to docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/_partials/check-toolchain.md diff --git a/docs/hardware/5-virtual-device/README.md b/docs/firmware/hardware/5-virtual-device/README.md similarity index 100% rename from docs/hardware/5-virtual-device/README.md rename to docs/firmware/hardware/5-virtual-device/README.md diff --git a/docs/hardware/5-virtual-device/_category_.yml b/docs/firmware/hardware/5-virtual-device/_category_.yml similarity index 100% rename from docs/hardware/5-virtual-device/_category_.yml rename to docs/firmware/hardware/5-virtual-device/_category_.yml diff --git a/docs/hardware/6-catalog/6-hardware-catalog.mdx b/docs/firmware/hardware/6-catalog/6-hardware-catalog.mdx similarity index 100% rename from docs/hardware/6-catalog/6-hardware-catalog.mdx rename to docs/firmware/hardware/6-catalog/6-hardware-catalog.mdx diff --git a/docs/hardware/6-catalog/_category_.yml b/docs/firmware/hardware/6-catalog/_category_.yml similarity index 100% rename from docs/hardware/6-catalog/_category_.yml rename to docs/firmware/hardware/6-catalog/_category_.yml diff --git a/docs/hardware/6-catalog/continuously-verified/_category_.yml b/docs/firmware/hardware/6-catalog/continuously-verified/_category_.yml similarity index 100% rename from docs/hardware/6-catalog/continuously-verified/_category_.yml rename to docs/firmware/hardware/6-catalog/continuously-verified/_category_.yml diff --git a/docs/hardware/6-catalog/continuously-verified/arm_mimxrt1060_evkb.md b/docs/firmware/hardware/6-catalog/continuously-verified/arm_mimxrt1060_evkb.md similarity index 100% rename from docs/hardware/6-catalog/continuously-verified/arm_mimxrt1060_evkb.md rename to docs/firmware/hardware/6-catalog/continuously-verified/arm_mimxrt1060_evkb.md diff --git a/docs/hardware/6-catalog/continuously-verified/arm_nrf9160dk_nrf9160.md b/docs/firmware/hardware/6-catalog/continuously-verified/arm_nrf9160dk_nrf9160.md similarity index 100% rename from docs/hardware/6-catalog/continuously-verified/arm_nrf9160dk_nrf9160.md rename to docs/firmware/hardware/6-catalog/continuously-verified/arm_nrf9160dk_nrf9160.md diff --git a/docs/hardware/6-catalog/continuously-verified/arm_qemu_cortex_m3.md b/docs/firmware/hardware/6-catalog/continuously-verified/arm_qemu_cortex_m3.md similarity index 100% rename from docs/hardware/6-catalog/continuously-verified/arm_qemu_cortex_m3.md rename to docs/firmware/hardware/6-catalog/continuously-verified/arm_qemu_cortex_m3.md diff --git a/docs/hardware/6-catalog/continuously-verified/xtensa_esp32.md b/docs/firmware/hardware/6-catalog/continuously-verified/xtensa_esp32.md similarity index 100% rename from docs/hardware/6-catalog/continuously-verified/xtensa_esp32.md rename to docs/firmware/hardware/6-catalog/continuously-verified/xtensa_esp32.md diff --git a/docs/hardware/6-catalog/unverified/_category_.yml b/docs/firmware/hardware/6-catalog/unverified/_category_.yml similarity index 100% rename from docs/hardware/6-catalog/unverified/_category_.yml rename to docs/firmware/hardware/6-catalog/unverified/_category_.yml diff --git a/docs/hardware/6-catalog/unverified/arc_em_starterkit.md b/docs/firmware/hardware/6-catalog/unverified/arc_em_starterkit.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arc_em_starterkit.md rename to docs/firmware/hardware/6-catalog/unverified/arc_em_starterkit.md diff --git a/docs/hardware/6-catalog/unverified/arc_emsdp.md b/docs/firmware/hardware/6-catalog/unverified/arc_emsdp.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arc_emsdp.md rename to docs/firmware/hardware/6-catalog/unverified/arc_emsdp.md diff --git a/docs/hardware/6-catalog/unverified/arc_hsdk.md b/docs/firmware/hardware/6-catalog/unverified/arc_hsdk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arc_hsdk.md rename to docs/firmware/hardware/6-catalog/unverified/arc_hsdk.md diff --git a/docs/hardware/6-catalog/unverified/arc_hsdk4xd.md b/docs/firmware/hardware/6-catalog/unverified/arc_hsdk4xd.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arc_hsdk4xd.md rename to docs/firmware/hardware/6-catalog/unverified/arc_hsdk4xd.md diff --git a/docs/hardware/6-catalog/unverified/arc_iotdk.md b/docs/firmware/hardware/6-catalog/unverified/arc_iotdk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arc_iotdk.md rename to docs/firmware/hardware/6-catalog/unverified/arc_iotdk.md diff --git a/docs/hardware/6-catalog/unverified/arc_nsim.md b/docs/firmware/hardware/6-catalog/unverified/arc_nsim.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arc_nsim.md rename to docs/firmware/hardware/6-catalog/unverified/arc_nsim.md diff --git a/docs/hardware/6-catalog/unverified/arc_qemu_arc.md b/docs/firmware/hardware/6-catalog/unverified/arc_qemu_arc.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arc_qemu_arc.md rename to docs/firmware/hardware/6-catalog/unverified/arc_qemu_arc.md diff --git a/docs/hardware/6-catalog/unverified/arm64_bcm958402m2_a72.md b/docs/firmware/hardware/6-catalog/unverified/arm64_bcm958402m2_a72.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_bcm958402m2_a72.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_bcm958402m2_a72.md diff --git a/docs/hardware/6-catalog/unverified/arm64_fvp_base_revc_2xaemv8a.md b/docs/firmware/hardware/6-catalog/unverified/arm64_fvp_base_revc_2xaemv8a.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_fvp_base_revc_2xaemv8a.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_fvp_base_revc_2xaemv8a.md diff --git a/docs/hardware/6-catalog/unverified/arm64_fvp_baser_aemv8r.md b/docs/firmware/hardware/6-catalog/unverified/arm64_fvp_baser_aemv8r.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_fvp_baser_aemv8r.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_fvp_baser_aemv8r.md diff --git a/docs/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex5_socdk.md b/docs/firmware/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex5_socdk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex5_socdk.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex5_socdk.md diff --git a/docs/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex_socdk.md b/docs/firmware/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex_socdk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex_socdk.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex_socdk.md diff --git a/docs/hardware/6-catalog/unverified/arm64_khadas_edgev.md b/docs/firmware/hardware/6-catalog/unverified/arm64_khadas_edgev.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_khadas_edgev.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_khadas_edgev.md diff --git a/docs/hardware/6-catalog/unverified/arm64_mimx8mm_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mm_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_mimx8mm_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mm_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm64_mimx8mn_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mn_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_mimx8mn_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mn_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm64_mimx8mp_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mp_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_mimx8mp_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mp_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm64_mimx93_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm64_mimx93_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_mimx93_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_mimx93_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm64_nxp_ls1046ardb.md b/docs/firmware/hardware/6-catalog/unverified/arm64_nxp_ls1046ardb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_nxp_ls1046ardb.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_nxp_ls1046ardb.md diff --git a/docs/hardware/6-catalog/unverified/arm64_phycore_am62x_a53.md b/docs/firmware/hardware/6-catalog/unverified/arm64_phycore_am62x_a53.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_phycore_am62x_a53.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_phycore_am62x_a53.md diff --git a/docs/hardware/6-catalog/unverified/arm64_qemu_cortex_a53.md b/docs/firmware/hardware/6-catalog/unverified/arm64_qemu_cortex_a53.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_qemu_cortex_a53.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_qemu_cortex_a53.md diff --git a/docs/hardware/6-catalog/unverified/arm64_qemu_kvm_arm64.md b/docs/firmware/hardware/6-catalog/unverified/arm64_qemu_kvm_arm64.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_qemu_kvm_arm64.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_qemu_kvm_arm64.md diff --git a/docs/hardware/6-catalog/unverified/arm64_rcar_h3ulcb_ca57.md b/docs/firmware/hardware/6-catalog/unverified/arm64_rcar_h3ulcb_ca57.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_rcar_h3ulcb_ca57.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_rcar_h3ulcb_ca57.md diff --git a/docs/hardware/6-catalog/unverified/arm64_rcar_salvator_xs_m3.md b/docs/firmware/hardware/6-catalog/unverified/arm64_rcar_salvator_xs_m3.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_rcar_salvator_xs_m3.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_rcar_salvator_xs_m3.md diff --git a/docs/hardware/6-catalog/unverified/arm64_rpi_4b.md b/docs/firmware/hardware/6-catalog/unverified/arm64_rpi_4b.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_rpi_4b.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_rpi_4b.md diff --git a/docs/hardware/6-catalog/unverified/arm64_xenvm.md b/docs/firmware/hardware/6-catalog/unverified/arm64_xenvm.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm64_xenvm.md rename to docs/firmware/hardware/6-catalog/unverified/arm64_xenvm.md diff --git a/docs/hardware/6-catalog/unverified/arm_96b_aerocore2.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_aerocore2.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_96b_aerocore2.md rename to docs/firmware/hardware/6-catalog/unverified/arm_96b_aerocore2.md diff --git a/docs/hardware/6-catalog/unverified/arm_96b_argonkey.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_argonkey.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_96b_argonkey.md rename to docs/firmware/hardware/6-catalog/unverified/arm_96b_argonkey.md diff --git a/docs/hardware/6-catalog/unverified/arm_96b_avenger96.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_avenger96.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_96b_avenger96.md rename to docs/firmware/hardware/6-catalog/unverified/arm_96b_avenger96.md diff --git a/docs/hardware/6-catalog/unverified/arm_96b_carbon.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_carbon.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_96b_carbon.md rename to docs/firmware/hardware/6-catalog/unverified/arm_96b_carbon.md diff --git a/docs/hardware/6-catalog/unverified/arm_96b_carbon_nrf51.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_carbon_nrf51.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_96b_carbon_nrf51.md rename to docs/firmware/hardware/6-catalog/unverified/arm_96b_carbon_nrf51.md diff --git a/docs/hardware/6-catalog/unverified/arm_96b_meerkat96.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_meerkat96.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_96b_meerkat96.md rename to docs/firmware/hardware/6-catalog/unverified/arm_96b_meerkat96.md diff --git a/docs/hardware/6-catalog/unverified/arm_96b_neonkey.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_neonkey.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_96b_neonkey.md rename to docs/firmware/hardware/6-catalog/unverified/arm_96b_neonkey.md diff --git a/docs/hardware/6-catalog/unverified/arm_96b_nitrogen.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_nitrogen.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_96b_nitrogen.md rename to docs/firmware/hardware/6-catalog/unverified/arm_96b_nitrogen.md diff --git a/docs/hardware/6-catalog/unverified/arm_96b_stm32_sensor_mez.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_stm32_sensor_mez.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_96b_stm32_sensor_mez.md rename to docs/firmware/hardware/6-catalog/unverified/arm_96b_stm32_sensor_mez.md diff --git a/docs/hardware/6-catalog/unverified/arm_96b_wistrio.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_wistrio.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_96b_wistrio.md rename to docs/firmware/hardware/6-catalog/unverified/arm_96b_wistrio.md diff --git a/docs/hardware/6-catalog/unverified/arm_acn52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_acn52832.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_acn52832.md rename to docs/firmware/hardware/6-catalog/unverified/arm_acn52832.md diff --git a/docs/hardware/6-catalog/unverified/arm_actinius_icarus.md b/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_actinius_icarus.md rename to docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus.md diff --git a/docs/hardware/6-catalog/unverified/arm_actinius_icarus_bee.md b/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_bee.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_actinius_icarus_bee.md rename to docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_bee.md diff --git a/docs/hardware/6-catalog/unverified/arm_actinius_icarus_som.md b/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_som.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_actinius_icarus_som.md rename to docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_som.md diff --git a/docs/hardware/6-catalog/unverified/arm_actinius_icarus_som_dk.md b/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_som_dk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_actinius_icarus_som_dk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_som_dk.md diff --git a/docs/hardware/6-catalog/unverified/arm_adafruit_feather_m0_basic_proto.md b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_m0_basic_proto.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_adafruit_feather_m0_basic_proto.md rename to docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_m0_basic_proto.md diff --git a/docs/hardware/6-catalog/unverified/arm_adafruit_feather_m0_lora.md b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_m0_lora.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_adafruit_feather_m0_lora.md rename to docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_m0_lora.md diff --git a/docs/hardware/6-catalog/unverified/arm_adafruit_feather_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_nrf52840.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_adafruit_feather_nrf52840.md rename to docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_nrf52840.md diff --git a/docs/hardware/6-catalog/unverified/arm_adafruit_feather_stm32f405.md b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_stm32f405.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_adafruit_feather_stm32f405.md rename to docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_stm32f405.md diff --git a/docs/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_m4_express.md b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_m4_express.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_m4_express.md rename to docs/firmware/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_m4_express.md diff --git a/docs/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_nrf52840.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_nrf52840.md rename to docs/firmware/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_nrf52840.md diff --git a/docs/hardware/6-catalog/unverified/arm_adafruit_kb2040.md b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_kb2040.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_adafruit_kb2040.md rename to docs/firmware/hardware/6-catalog/unverified/arm_adafruit_kb2040.md diff --git a/docs/hardware/6-catalog/unverified/arm_adafruit_trinket_m0.md b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_trinket_m0.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_adafruit_trinket_m0.md rename to docs/firmware/hardware/6-catalog/unverified/arm_adafruit_trinket_m0.md diff --git a/docs/hardware/6-catalog/unverified/arm_am62x_m4.md b/docs/firmware/hardware/6-catalog/unverified/arm_am62x_m4.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_am62x_m4.md rename to docs/firmware/hardware/6-catalog/unverified/arm_am62x_m4.md diff --git a/docs/hardware/6-catalog/unverified/arm_apollo4p_blue_kxr_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_apollo4p_blue_kxr_evb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_apollo4p_blue_kxr_evb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_apollo4p_blue_kxr_evb.md diff --git a/docs/hardware/6-catalog/unverified/arm_apollo4p_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_apollo4p_evb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_apollo4p_evb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_apollo4p_evb.md diff --git a/docs/hardware/6-catalog/unverified/arm_arduino_due.md b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_due.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_arduino_due.md rename to docs/firmware/hardware/6-catalog/unverified/arm_arduino_due.md diff --git a/docs/hardware/6-catalog/unverified/arm_arduino_giga_r1.md b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_giga_r1.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_arduino_giga_r1.md rename to docs/firmware/hardware/6-catalog/unverified/arm_arduino_giga_r1.md diff --git a/docs/hardware/6-catalog/unverified/arm_arduino_mkrzero.md b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_mkrzero.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_arduino_mkrzero.md rename to docs/firmware/hardware/6-catalog/unverified/arm_arduino_mkrzero.md diff --git a/docs/hardware/6-catalog/unverified/arm_arduino_nano_33_ble.md b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_nano_33_ble.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_arduino_nano_33_ble.md rename to docs/firmware/hardware/6-catalog/unverified/arm_arduino_nano_33_ble.md diff --git a/docs/hardware/6-catalog/unverified/arm_arduino_nano_33_iot.md b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_nano_33_iot.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_arduino_nano_33_iot.md rename to docs/firmware/hardware/6-catalog/unverified/arm_arduino_nano_33_iot.md diff --git a/docs/hardware/6-catalog/unverified/arm_arduino_nicla_sense_me.md b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_nicla_sense_me.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_arduino_nicla_sense_me.md rename to docs/firmware/hardware/6-catalog/unverified/arm_arduino_nicla_sense_me.md diff --git a/docs/hardware/6-catalog/unverified/arm_arduino_portenta_h7.md b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_portenta_h7.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_arduino_portenta_h7.md rename to docs/firmware/hardware/6-catalog/unverified/arm_arduino_portenta_h7.md diff --git a/docs/hardware/6-catalog/unverified/arm_arduino_zero.md b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_zero.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_arduino_zero.md rename to docs/firmware/hardware/6-catalog/unverified/arm_arduino_zero.md diff --git a/docs/hardware/6-catalog/unverified/arm_arty.md b/docs/firmware/hardware/6-catalog/unverified/arm_arty.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_arty.md rename to docs/firmware/hardware/6-catalog/unverified/arm_arty.md diff --git a/docs/hardware/6-catalog/unverified/arm_ast1030_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_ast1030_evb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_ast1030_evb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_ast1030_evb.md diff --git a/docs/hardware/6-catalog/unverified/arm_atsamc21n_xpro.md b/docs/firmware/hardware/6-catalog/unverified/arm_atsamc21n_xpro.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_atsamc21n_xpro.md rename to docs/firmware/hardware/6-catalog/unverified/arm_atsamc21n_xpro.md diff --git a/docs/hardware/6-catalog/unverified/arm_atsamd20_xpro.md b/docs/firmware/hardware/6-catalog/unverified/arm_atsamd20_xpro.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_atsamd20_xpro.md rename to docs/firmware/hardware/6-catalog/unverified/arm_atsamd20_xpro.md diff --git a/docs/hardware/6-catalog/unverified/arm_atsamd21_xpro.md b/docs/firmware/hardware/6-catalog/unverified/arm_atsamd21_xpro.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_atsamd21_xpro.md rename to docs/firmware/hardware/6-catalog/unverified/arm_atsamd21_xpro.md diff --git a/docs/hardware/6-catalog/unverified/arm_atsame54_xpro.md b/docs/firmware/hardware/6-catalog/unverified/arm_atsame54_xpro.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_atsame54_xpro.md rename to docs/firmware/hardware/6-catalog/unverified/arm_atsame54_xpro.md diff --git a/docs/hardware/6-catalog/unverified/arm_atsaml21_xpro.md b/docs/firmware/hardware/6-catalog/unverified/arm_atsaml21_xpro.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_atsaml21_xpro.md rename to docs/firmware/hardware/6-catalog/unverified/arm_atsaml21_xpro.md diff --git a/docs/hardware/6-catalog/unverified/arm_atsamr21_xpro.md b/docs/firmware/hardware/6-catalog/unverified/arm_atsamr21_xpro.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_atsamr21_xpro.md rename to docs/firmware/hardware/6-catalog/unverified/arm_atsamr21_xpro.md diff --git a/docs/hardware/6-catalog/unverified/arm_atsamr34_xpro.md b/docs/firmware/hardware/6-catalog/unverified/arm_atsamr34_xpro.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_atsamr34_xpro.md rename to docs/firmware/hardware/6-catalog/unverified/arm_atsamr34_xpro.md diff --git a/docs/hardware/6-catalog/unverified/arm_az3166_iotdevkit.md b/docs/firmware/hardware/6-catalog/unverified/arm_az3166_iotdevkit.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_az3166_iotdevkit.md rename to docs/firmware/hardware/6-catalog/unverified/arm_az3166_iotdevkit.md diff --git a/docs/hardware/6-catalog/unverified/arm_b_g474e_dpow1.md b/docs/firmware/hardware/6-catalog/unverified/arm_b_g474e_dpow1.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_b_g474e_dpow1.md rename to docs/firmware/hardware/6-catalog/unverified/arm_b_g474e_dpow1.md diff --git a/docs/hardware/6-catalog/unverified/arm_b_l072z_lrwan1.md b/docs/firmware/hardware/6-catalog/unverified/arm_b_l072z_lrwan1.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_b_l072z_lrwan1.md rename to docs/firmware/hardware/6-catalog/unverified/arm_b_l072z_lrwan1.md diff --git a/docs/hardware/6-catalog/unverified/arm_b_l4s5i_iot01a.md b/docs/firmware/hardware/6-catalog/unverified/arm_b_l4s5i_iot01a.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_b_l4s5i_iot01a.md rename to docs/firmware/hardware/6-catalog/unverified/arm_b_l4s5i_iot01a.md diff --git a/docs/hardware/6-catalog/unverified/arm_b_u585i_iot02a.md b/docs/firmware/hardware/6-catalog/unverified/arm_b_u585i_iot02a.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_b_u585i_iot02a.md rename to docs/firmware/hardware/6-catalog/unverified/arm_b_u585i_iot02a.md diff --git a/docs/hardware/6-catalog/unverified/arm_bbc_microbit.md b/docs/firmware/hardware/6-catalog/unverified/arm_bbc_microbit.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_bbc_microbit.md rename to docs/firmware/hardware/6-catalog/unverified/arm_bbc_microbit.md diff --git a/docs/hardware/6-catalog/unverified/arm_bbc_microbit_v2.md b/docs/firmware/hardware/6-catalog/unverified/arm_bbc_microbit_v2.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_bbc_microbit_v2.md rename to docs/firmware/hardware/6-catalog/unverified/arm_bbc_microbit_v2.md diff --git a/docs/hardware/6-catalog/unverified/arm_bcm958401m2.md b/docs/firmware/hardware/6-catalog/unverified/arm_bcm958401m2.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_bcm958401m2.md rename to docs/firmware/hardware/6-catalog/unverified/arm_bcm958401m2.md diff --git a/docs/hardware/6-catalog/unverified/arm_bcm958402m2_m7.md b/docs/firmware/hardware/6-catalog/unverified/arm_bcm958402m2_m7.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_bcm958402m2_m7.md rename to docs/firmware/hardware/6-catalog/unverified/arm_bcm958402m2_m7.md diff --git a/docs/hardware/6-catalog/unverified/arm_beagle_bcf.md b/docs/firmware/hardware/6-catalog/unverified/arm_beagle_bcf.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_beagle_bcf.md rename to docs/firmware/hardware/6-catalog/unverified/arm_beagle_bcf.md diff --git a/docs/hardware/6-catalog/unverified/arm_bl5340_dvk.md b/docs/firmware/hardware/6-catalog/unverified/arm_bl5340_dvk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_bl5340_dvk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_bl5340_dvk.md diff --git a/docs/hardware/6-catalog/unverified/arm_bl652_dvk.md b/docs/firmware/hardware/6-catalog/unverified/arm_bl652_dvk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_bl652_dvk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_bl652_dvk.md diff --git a/docs/hardware/6-catalog/unverified/arm_bl653_dvk.md b/docs/firmware/hardware/6-catalog/unverified/arm_bl653_dvk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_bl653_dvk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_bl653_dvk.md diff --git a/docs/hardware/6-catalog/unverified/arm_bl654_dvk.md b/docs/firmware/hardware/6-catalog/unverified/arm_bl654_dvk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_bl654_dvk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_bl654_dvk.md diff --git a/docs/hardware/6-catalog/unverified/arm_bl654_sensor_board.md b/docs/firmware/hardware/6-catalog/unverified/arm_bl654_sensor_board.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_bl654_sensor_board.md rename to docs/firmware/hardware/6-catalog/unverified/arm_bl654_sensor_board.md diff --git a/docs/hardware/6-catalog/unverified/arm_bl654_usb.md b/docs/firmware/hardware/6-catalog/unverified/arm_bl654_usb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_bl654_usb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_bl654_usb.md diff --git a/docs/hardware/6-catalog/unverified/arm_black_f407ve.md b/docs/firmware/hardware/6-catalog/unverified/arm_black_f407ve.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_black_f407ve.md rename to docs/firmware/hardware/6-catalog/unverified/arm_black_f407ve.md diff --git a/docs/hardware/6-catalog/unverified/arm_black_f407zg_pro.md b/docs/firmware/hardware/6-catalog/unverified/arm_black_f407zg_pro.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_black_f407zg_pro.md rename to docs/firmware/hardware/6-catalog/unverified/arm_black_f407zg_pro.md diff --git a/docs/hardware/6-catalog/unverified/arm_blackpill_f401cc.md b/docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f401cc.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_blackpill_f401cc.md rename to docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f401cc.md diff --git a/docs/hardware/6-catalog/unverified/arm_blackpill_f401ce.md b/docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f401ce.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_blackpill_f401ce.md rename to docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f401ce.md diff --git a/docs/hardware/6-catalog/unverified/arm_blackpill_f411ce.md b/docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f411ce.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_blackpill_f411ce.md rename to docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f411ce.md diff --git a/docs/hardware/6-catalog/unverified/arm_blueclover_plt_demo_v2_nrf52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_blueclover_plt_demo_v2_nrf52832.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_blueclover_plt_demo_v2_nrf52832.md rename to docs/firmware/hardware/6-catalog/unverified/arm_blueclover_plt_demo_v2_nrf52832.md diff --git a/docs/hardware/6-catalog/unverified/arm_bt510.md b/docs/firmware/hardware/6-catalog/unverified/arm_bt510.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_bt510.md rename to docs/firmware/hardware/6-catalog/unverified/arm_bt510.md diff --git a/docs/hardware/6-catalog/unverified/arm_bt610.md b/docs/firmware/hardware/6-catalog/unverified/arm_bt610.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_bt610.md rename to docs/firmware/hardware/6-catalog/unverified/arm_bt610.md diff --git a/docs/hardware/6-catalog/unverified/arm_cc1352p1_launchxl.md b/docs/firmware/hardware/6-catalog/unverified/arm_cc1352p1_launchxl.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_cc1352p1_launchxl.md rename to docs/firmware/hardware/6-catalog/unverified/arm_cc1352p1_launchxl.md diff --git a/docs/hardware/6-catalog/unverified/arm_cc1352r1_launchxl.md b/docs/firmware/hardware/6-catalog/unverified/arm_cc1352r1_launchxl.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_cc1352r1_launchxl.md rename to docs/firmware/hardware/6-catalog/unverified/arm_cc1352r1_launchxl.md diff --git a/docs/hardware/6-catalog/unverified/arm_cc1352r_sensortag.md b/docs/firmware/hardware/6-catalog/unverified/arm_cc1352r_sensortag.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_cc1352r_sensortag.md rename to docs/firmware/hardware/6-catalog/unverified/arm_cc1352r_sensortag.md diff --git a/docs/hardware/6-catalog/unverified/arm_cc26x2r1_launchxl.md b/docs/firmware/hardware/6-catalog/unverified/arm_cc26x2r1_launchxl.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_cc26x2r1_launchxl.md rename to docs/firmware/hardware/6-catalog/unverified/arm_cc26x2r1_launchxl.md diff --git a/docs/hardware/6-catalog/unverified/arm_cc3220sf_launchxl.md b/docs/firmware/hardware/6-catalog/unverified/arm_cc3220sf_launchxl.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_cc3220sf_launchxl.md rename to docs/firmware/hardware/6-catalog/unverified/arm_cc3220sf_launchxl.md diff --git a/docs/hardware/6-catalog/unverified/arm_cc3235sf_launchxl.md b/docs/firmware/hardware/6-catalog/unverified/arm_cc3235sf_launchxl.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_cc3235sf_launchxl.md rename to docs/firmware/hardware/6-catalog/unverified/arm_cc3235sf_launchxl.md diff --git a/docs/hardware/6-catalog/unverified/arm_colibri_imx7d_m4.md b/docs/firmware/hardware/6-catalog/unverified/arm_colibri_imx7d_m4.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_colibri_imx7d_m4.md rename to docs/firmware/hardware/6-catalog/unverified/arm_colibri_imx7d_m4.md diff --git a/docs/hardware/6-catalog/unverified/arm_contextualelectronics_abc.md b/docs/firmware/hardware/6-catalog/unverified/arm_contextualelectronics_abc.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_contextualelectronics_abc.md rename to docs/firmware/hardware/6-catalog/unverified/arm_contextualelectronics_abc.md diff --git a/docs/hardware/6-catalog/unverified/arm_cy8ckit_062_ble.md b/docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062_ble.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_cy8ckit_062_ble.md rename to docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062_ble.md diff --git a/docs/hardware/6-catalog/unverified/arm_cy8ckit_062_wifi_bt.md b/docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062_wifi_bt.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_cy8ckit_062_wifi_bt.md rename to docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062_wifi_bt.md diff --git a/docs/hardware/6-catalog/unverified/arm_cy8ckit_062s4.md b/docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062s4.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_cy8ckit_062s4.md rename to docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062s4.md diff --git a/docs/hardware/6-catalog/unverified/arm_cy8cproto_062_4343w.md b/docs/firmware/hardware/6-catalog/unverified/arm_cy8cproto_062_4343w.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_cy8cproto_062_4343w.md rename to docs/firmware/hardware/6-catalog/unverified/arm_cy8cproto_062_4343w.md diff --git a/docs/hardware/6-catalog/unverified/arm_cy8cproto_063_ble.md b/docs/firmware/hardware/6-catalog/unverified/arm_cy8cproto_063_ble.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_cy8cproto_063_ble.md rename to docs/firmware/hardware/6-catalog/unverified/arm_cy8cproto_063_ble.md diff --git a/docs/hardware/6-catalog/unverified/arm_cyclonev_socdk.md b/docs/firmware/hardware/6-catalog/unverified/arm_cyclonev_socdk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_cyclonev_socdk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_cyclonev_socdk.md diff --git a/docs/hardware/6-catalog/unverified/arm_da14695_dk_usb.md b/docs/firmware/hardware/6-catalog/unverified/arm_da14695_dk_usb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_da14695_dk_usb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_da14695_dk_usb.md diff --git a/docs/hardware/6-catalog/unverified/arm_da1469x_dk_pro.md b/docs/firmware/hardware/6-catalog/unverified/arm_da1469x_dk_pro.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_da1469x_dk_pro.md rename to docs/firmware/hardware/6-catalog/unverified/arm_da1469x_dk_pro.md diff --git a/docs/hardware/6-catalog/unverified/arm_decawave_dwm1001_dev.md b/docs/firmware/hardware/6-catalog/unverified/arm_decawave_dwm1001_dev.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_decawave_dwm1001_dev.md rename to docs/firmware/hardware/6-catalog/unverified/arm_decawave_dwm1001_dev.md diff --git a/docs/hardware/6-catalog/unverified/arm_degu_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_degu_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_degu_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_degu_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm_disco_l475_iot1.md b/docs/firmware/hardware/6-catalog/unverified/arm_disco_l475_iot1.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_disco_l475_iot1.md rename to docs/firmware/hardware/6-catalog/unverified/arm_disco_l475_iot1.md diff --git a/docs/hardware/6-catalog/unverified/arm_dragino_lsn50.md b/docs/firmware/hardware/6-catalog/unverified/arm_dragino_lsn50.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_dragino_lsn50.md rename to docs/firmware/hardware/6-catalog/unverified/arm_dragino_lsn50.md diff --git a/docs/hardware/6-catalog/unverified/arm_dragino_nbsn95.md b/docs/firmware/hardware/6-catalog/unverified/arm_dragino_nbsn95.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_dragino_nbsn95.md rename to docs/firmware/hardware/6-catalog/unverified/arm_dragino_nbsn95.md diff --git a/docs/hardware/6-catalog/unverified/arm_ebyte_e73_tbb_nrf52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_ebyte_e73_tbb_nrf52832.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_ebyte_e73_tbb_nrf52832.md rename to docs/firmware/hardware/6-catalog/unverified/arm_ebyte_e73_tbb_nrf52832.md diff --git a/docs/hardware/6-catalog/unverified/arm_efm32gg_sltb009a.md b/docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_sltb009a.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_efm32gg_sltb009a.md rename to docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_sltb009a.md diff --git a/docs/hardware/6-catalog/unverified/arm_efm32gg_slwstk6121a.md b/docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_slwstk6121a.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_efm32gg_slwstk6121a.md rename to docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_slwstk6121a.md diff --git a/docs/hardware/6-catalog/unverified/arm_efm32gg_stk3701a.md b/docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_stk3701a.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_efm32gg_stk3701a.md rename to docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_stk3701a.md diff --git a/docs/hardware/6-catalog/unverified/arm_efm32hg_slstk3400a.md b/docs/firmware/hardware/6-catalog/unverified/arm_efm32hg_slstk3400a.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_efm32hg_slstk3400a.md rename to docs/firmware/hardware/6-catalog/unverified/arm_efm32hg_slstk3400a.md diff --git a/docs/hardware/6-catalog/unverified/arm_efm32pg_stk3401a.md b/docs/firmware/hardware/6-catalog/unverified/arm_efm32pg_stk3401a.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_efm32pg_stk3401a.md rename to docs/firmware/hardware/6-catalog/unverified/arm_efm32pg_stk3401a.md diff --git a/docs/hardware/6-catalog/unverified/arm_efm32pg_stk3402a.md b/docs/firmware/hardware/6-catalog/unverified/arm_efm32pg_stk3402a.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_efm32pg_stk3402a.md rename to docs/firmware/hardware/6-catalog/unverified/arm_efm32pg_stk3402a.md diff --git a/docs/hardware/6-catalog/unverified/arm_efm32wg_stk3800.md b/docs/firmware/hardware/6-catalog/unverified/arm_efm32wg_stk3800.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_efm32wg_stk3800.md rename to docs/firmware/hardware/6-catalog/unverified/arm_efm32wg_stk3800.md diff --git a/docs/hardware/6-catalog/unverified/arm_efr32_radio.md b/docs/firmware/hardware/6-catalog/unverified/arm_efr32_radio.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_efr32_radio.md rename to docs/firmware/hardware/6-catalog/unverified/arm_efr32_radio.md diff --git a/docs/hardware/6-catalog/unverified/arm_efr32_thunderboard.md b/docs/firmware/hardware/6-catalog/unverified/arm_efr32_thunderboard.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_efr32_thunderboard.md rename to docs/firmware/hardware/6-catalog/unverified/arm_efr32_thunderboard.md diff --git a/docs/hardware/6-catalog/unverified/arm_efr32mg_sltb004a.md b/docs/firmware/hardware/6-catalog/unverified/arm_efr32mg_sltb004a.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_efr32mg_sltb004a.md rename to docs/firmware/hardware/6-catalog/unverified/arm_efr32mg_sltb004a.md diff --git a/docs/hardware/6-catalog/unverified/arm_efr32xg24_dk2601b.md b/docs/firmware/hardware/6-catalog/unverified/arm_efr32xg24_dk2601b.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_efr32xg24_dk2601b.md rename to docs/firmware/hardware/6-catalog/unverified/arm_efr32xg24_dk2601b.md diff --git a/docs/hardware/6-catalog/unverified/arm_ev11l78a.md b/docs/firmware/hardware/6-catalog/unverified/arm_ev11l78a.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_ev11l78a.md rename to docs/firmware/hardware/6-catalog/unverified/arm_ev11l78a.md diff --git a/docs/hardware/6-catalog/unverified/arm_faze.md b/docs/firmware/hardware/6-catalog/unverified/arm_faze.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_faze.md rename to docs/firmware/hardware/6-catalog/unverified/arm_faze.md diff --git a/docs/hardware/6-catalog/unverified/arm_frdm_k22f.md b/docs/firmware/hardware/6-catalog/unverified/arm_frdm_k22f.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_frdm_k22f.md rename to docs/firmware/hardware/6-catalog/unverified/arm_frdm_k22f.md diff --git a/docs/hardware/6-catalog/unverified/arm_frdm_k64f.md b/docs/firmware/hardware/6-catalog/unverified/arm_frdm_k64f.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_frdm_k64f.md rename to docs/firmware/hardware/6-catalog/unverified/arm_frdm_k64f.md diff --git a/docs/hardware/6-catalog/unverified/arm_frdm_k82f.md b/docs/firmware/hardware/6-catalog/unverified/arm_frdm_k82f.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_frdm_k82f.md rename to docs/firmware/hardware/6-catalog/unverified/arm_frdm_k82f.md diff --git a/docs/hardware/6-catalog/unverified/arm_frdm_kl25z.md b/docs/firmware/hardware/6-catalog/unverified/arm_frdm_kl25z.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_frdm_kl25z.md rename to docs/firmware/hardware/6-catalog/unverified/arm_frdm_kl25z.md diff --git a/docs/hardware/6-catalog/unverified/arm_frdm_kw41z.md b/docs/firmware/hardware/6-catalog/unverified/arm_frdm_kw41z.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_frdm_kw41z.md rename to docs/firmware/hardware/6-catalog/unverified/arm_frdm_kw41z.md diff --git a/docs/hardware/6-catalog/unverified/arm_fvp_baser_aemv8r_aarch32.md b/docs/firmware/hardware/6-catalog/unverified/arm_fvp_baser_aemv8r_aarch32.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_fvp_baser_aemv8r_aarch32.md rename to docs/firmware/hardware/6-catalog/unverified/arm_fvp_baser_aemv8r_aarch32.md diff --git a/docs/hardware/6-catalog/unverified/arm_gd32a503v_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32a503v_eval.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_gd32a503v_eval.md rename to docs/firmware/hardware/6-catalog/unverified/arm_gd32a503v_eval.md diff --git a/docs/hardware/6-catalog/unverified/arm_gd32e103v_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32e103v_eval.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_gd32e103v_eval.md rename to docs/firmware/hardware/6-catalog/unverified/arm_gd32e103v_eval.md diff --git a/docs/hardware/6-catalog/unverified/arm_gd32e507v_start.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32e507v_start.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_gd32e507v_start.md rename to docs/firmware/hardware/6-catalog/unverified/arm_gd32e507v_start.md diff --git a/docs/hardware/6-catalog/unverified/arm_gd32e507z_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32e507z_eval.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_gd32e507z_eval.md rename to docs/firmware/hardware/6-catalog/unverified/arm_gd32e507z_eval.md diff --git a/docs/hardware/6-catalog/unverified/arm_gd32f350r_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f350r_eval.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_gd32f350r_eval.md rename to docs/firmware/hardware/6-catalog/unverified/arm_gd32f350r_eval.md diff --git a/docs/hardware/6-catalog/unverified/arm_gd32f403z_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f403z_eval.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_gd32f403z_eval.md rename to docs/firmware/hardware/6-catalog/unverified/arm_gd32f403z_eval.md diff --git a/docs/hardware/6-catalog/unverified/arm_gd32f407v_start.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f407v_start.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_gd32f407v_start.md rename to docs/firmware/hardware/6-catalog/unverified/arm_gd32f407v_start.md diff --git a/docs/hardware/6-catalog/unverified/arm_gd32f450i_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f450i_eval.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_gd32f450i_eval.md rename to docs/firmware/hardware/6-catalog/unverified/arm_gd32f450i_eval.md diff --git a/docs/hardware/6-catalog/unverified/arm_gd32f450v_start.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f450v_start.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_gd32f450v_start.md rename to docs/firmware/hardware/6-catalog/unverified/arm_gd32f450v_start.md diff --git a/docs/hardware/6-catalog/unverified/arm_gd32f450z_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f450z_eval.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_gd32f450z_eval.md rename to docs/firmware/hardware/6-catalog/unverified/arm_gd32f450z_eval.md diff --git a/docs/hardware/6-catalog/unverified/arm_gd32f470i_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f470i_eval.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_gd32f470i_eval.md rename to docs/firmware/hardware/6-catalog/unverified/arm_gd32f470i_eval.md diff --git a/docs/hardware/6-catalog/unverified/arm_gd32l233r_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32l233r_eval.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_gd32l233r_eval.md rename to docs/firmware/hardware/6-catalog/unverified/arm_gd32l233r_eval.md diff --git a/docs/hardware/6-catalog/unverified/arm_google_dragonclaw.md b/docs/firmware/hardware/6-catalog/unverified/arm_google_dragonclaw.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_google_dragonclaw.md rename to docs/firmware/hardware/6-catalog/unverified/arm_google_dragonclaw.md diff --git a/docs/hardware/6-catalog/unverified/arm_google_kukui.md b/docs/firmware/hardware/6-catalog/unverified/arm_google_kukui.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_google_kukui.md rename to docs/firmware/hardware/6-catalog/unverified/arm_google_kukui.md diff --git a/docs/hardware/6-catalog/unverified/arm_google_twinkie_v2.md b/docs/firmware/hardware/6-catalog/unverified/arm_google_twinkie_v2.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_google_twinkie_v2.md rename to docs/firmware/hardware/6-catalog/unverified/arm_google_twinkie_v2.md diff --git a/docs/hardware/6-catalog/unverified/arm_hexiwear_k64.md b/docs/firmware/hardware/6-catalog/unverified/arm_hexiwear_k64.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_hexiwear_k64.md rename to docs/firmware/hardware/6-catalog/unverified/arm_hexiwear_k64.md diff --git a/docs/hardware/6-catalog/unverified/arm_hexiwear_kw40z.md b/docs/firmware/hardware/6-catalog/unverified/arm_hexiwear_kw40z.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_hexiwear_kw40z.md rename to docs/firmware/hardware/6-catalog/unverified/arm_hexiwear_kw40z.md diff --git a/docs/hardware/6-catalog/unverified/arm_holyiot_yj16019.md b/docs/firmware/hardware/6-catalog/unverified/arm_holyiot_yj16019.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_holyiot_yj16019.md rename to docs/firmware/hardware/6-catalog/unverified/arm_holyiot_yj16019.md diff --git a/docs/hardware/6-catalog/unverified/arm_ip_k66f.md b/docs/firmware/hardware/6-catalog/unverified/arm_ip_k66f.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_ip_k66f.md rename to docs/firmware/hardware/6-catalog/unverified/arm_ip_k66f.md diff --git a/docs/hardware/6-catalog/unverified/arm_kv260_r5.md b/docs/firmware/hardware/6-catalog/unverified/arm_kv260_r5.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_kv260_r5.md rename to docs/firmware/hardware/6-catalog/unverified/arm_kv260_r5.md diff --git a/docs/hardware/6-catalog/unverified/arm_legend.md b/docs/firmware/hardware/6-catalog/unverified/arm_legend.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_legend.md rename to docs/firmware/hardware/6-catalog/unverified/arm_legend.md diff --git a/docs/hardware/6-catalog/unverified/arm_lora_e5_dev_board.md b/docs/firmware/hardware/6-catalog/unverified/arm_lora_e5_dev_board.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_lora_e5_dev_board.md rename to docs/firmware/hardware/6-catalog/unverified/arm_lora_e5_dev_board.md diff --git a/docs/hardware/6-catalog/unverified/arm_lpcxpresso11u68.md b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso11u68.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_lpcxpresso11u68.md rename to docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso11u68.md diff --git a/docs/hardware/6-catalog/unverified/arm_lpcxpresso51u68.md b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso51u68.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_lpcxpresso51u68.md rename to docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso51u68.md diff --git a/docs/hardware/6-catalog/unverified/arm_lpcxpresso54114.md b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso54114.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_lpcxpresso54114.md rename to docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso54114.md diff --git a/docs/hardware/6-catalog/unverified/arm_lpcxpresso55s06.md b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s06.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_lpcxpresso55s06.md rename to docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s06.md diff --git a/docs/hardware/6-catalog/unverified/arm_lpcxpresso55s16.md b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s16.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_lpcxpresso55s16.md rename to docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s16.md diff --git a/docs/hardware/6-catalog/unverified/arm_lpcxpresso55s28.md b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s28.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_lpcxpresso55s28.md rename to docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s28.md diff --git a/docs/hardware/6-catalog/unverified/arm_lpcxpresso55s36.md b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s36.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_lpcxpresso55s36.md rename to docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s36.md diff --git a/docs/hardware/6-catalog/unverified/arm_lpcxpresso55s69.md b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s69.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_lpcxpresso55s69.md rename to docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s69.md diff --git a/docs/hardware/6-catalog/unverified/arm_mec1501modular_assy6885.md b/docs/firmware/hardware/6-catalog/unverified/arm_mec1501modular_assy6885.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mec1501modular_assy6885.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mec1501modular_assy6885.md diff --git a/docs/hardware/6-catalog/unverified/arm_mec15xxevb_assy6853.md b/docs/firmware/hardware/6-catalog/unverified/arm_mec15xxevb_assy6853.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mec15xxevb_assy6853.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mec15xxevb_assy6853.md diff --git a/docs/hardware/6-catalog/unverified/arm_mec172xevb_assy6906.md b/docs/firmware/hardware/6-catalog/unverified/arm_mec172xevb_assy6906.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mec172xevb_assy6906.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mec172xevb_assy6906.md diff --git a/docs/hardware/6-catalog/unverified/arm_mec172xmodular_assy6930.md b/docs/firmware/hardware/6-catalog/unverified/arm_mec172xmodular_assy6930.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mec172xmodular_assy6930.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mec172xmodular_assy6930.md diff --git a/docs/hardware/6-catalog/unverified/arm_mercury_xu.md b/docs/firmware/hardware/6-catalog/unverified/arm_mercury_xu.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mercury_xu.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mercury_xu.md diff --git a/docs/hardware/6-catalog/unverified/arm_mg100.md b/docs/firmware/hardware/6-catalog/unverified/arm_mg100.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mg100.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mg100.md diff --git a/docs/hardware/6-catalog/unverified/arm_mikroe_clicker_2.md b/docs/firmware/hardware/6-catalog/unverified/arm_mikroe_clicker_2.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mikroe_clicker_2.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mikroe_clicker_2.md diff --git a/docs/hardware/6-catalog/unverified/arm_mikroe_mini_m4_for_stm32.md b/docs/firmware/hardware/6-catalog/unverified/arm_mikroe_mini_m4_for_stm32.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mikroe_mini_m4_for_stm32.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mikroe_mini_m4_for_stm32.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimx8mm_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mm_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimx8mm_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimx8mm_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimx8mm_phyboard_polis.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mm_phyboard_polis.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimx8mm_phyboard_polis.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimx8mm_phyboard_polis.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimx8mp_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mp_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimx8mp_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimx8mp_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimx8mp_phyboard_pollux.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mp_phyboard_pollux.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimx8mp_phyboard_pollux.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimx8mp_phyboard_pollux.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimx8mq_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mq_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimx8mq_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimx8mq_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimxrt1010_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1010_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimxrt1010_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1010_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimxrt1015_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1015_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimxrt1015_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1015_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimxrt1020_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1020_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimxrt1020_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1020_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimxrt1024_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1024_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimxrt1024_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1024_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimxrt1040_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1040_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimxrt1040_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1040_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimxrt1050_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1050_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimxrt1050_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1050_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimxrt1060_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1060_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimxrt1060_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1060_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimxrt1062_fmurt6.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1062_fmurt6.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimxrt1062_fmurt6.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1062_fmurt6.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimxrt1064_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1064_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimxrt1064_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1064_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimxrt1160_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1160_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimxrt1160_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1160_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimxrt1170_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1170_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimxrt1170_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1170_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimxrt595_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt595_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimxrt595_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimxrt595_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm_mimxrt685_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt685_evk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mimxrt685_evk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mimxrt685_evk.md diff --git a/docs/hardware/6-catalog/unverified/arm_mm_feather.md b/docs/firmware/hardware/6-catalog/unverified/arm_mm_feather.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mm_feather.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mm_feather.md diff --git a/docs/hardware/6-catalog/unverified/arm_mm_swiftio.md b/docs/firmware/hardware/6-catalog/unverified/arm_mm_swiftio.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mm_swiftio.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mm_swiftio.md diff --git a/docs/hardware/6-catalog/unverified/arm_mps2_an385.md b/docs/firmware/hardware/6-catalog/unverified/arm_mps2_an385.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mps2_an385.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mps2_an385.md diff --git a/docs/hardware/6-catalog/unverified/arm_mps2_an521.md b/docs/firmware/hardware/6-catalog/unverified/arm_mps2_an521.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mps2_an521.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mps2_an521.md diff --git a/docs/hardware/6-catalog/unverified/arm_mps3_an547.md b/docs/firmware/hardware/6-catalog/unverified/arm_mps3_an547.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mps3_an547.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mps3_an547.md diff --git a/docs/hardware/6-catalog/unverified/arm_mr_canhubk3.md b/docs/firmware/hardware/6-catalog/unverified/arm_mr_canhubk3.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_mr_canhubk3.md rename to docs/firmware/hardware/6-catalog/unverified/arm_mr_canhubk3.md diff --git a/docs/hardware/6-catalog/unverified/arm_msp_exp432p401r_launchxl.md b/docs/firmware/hardware/6-catalog/unverified/arm_msp_exp432p401r_launchxl.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_msp_exp432p401r_launchxl.md rename to docs/firmware/hardware/6-catalog/unverified/arm_msp_exp432p401r_launchxl.md diff --git a/docs/hardware/6-catalog/unverified/arm_npcx4m8f_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_npcx4m8f_evb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_npcx4m8f_evb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_npcx4m8f_evb.md diff --git a/docs/hardware/6-catalog/unverified/arm_npcx7m6fb_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_npcx7m6fb_evb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_npcx7m6fb_evb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_npcx7m6fb_evb.md diff --git a/docs/hardware/6-catalog/unverified/arm_npcx9m6f_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_npcx9m6f_evb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_npcx9m6f_evb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_npcx9m6f_evb.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf21540dk_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf21540dk_nrf52840.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf21540dk_nrf52840.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf21540dk_nrf52840.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf51_ble400.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf51_ble400.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf51_ble400.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf51_ble400.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf51_blenano.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf51_blenano.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf51_blenano.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf51_blenano.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf51_vbluno51.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf51_vbluno51.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf51_vbluno51.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf51_vbluno51.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf51dk_nrf51422.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf51dk_nrf51422.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf51dk_nrf51422.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf51dk_nrf51422.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf51dongle_nrf51422.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf51dongle_nrf51422.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf51dongle_nrf51422.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf51dongle_nrf51422.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf52832_mdk.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52832_mdk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf52832_mdk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf52832_mdk.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52820.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52820.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52820.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52820.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52833.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52833.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52833.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52833.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf52840_blip.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_blip.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf52840_blip.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_blip.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf52840_mdk.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_mdk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf52840_mdk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_mdk.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf52840_mdk_usb_dongle.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_mdk_usb_dongle.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf52840_mdk_usb_dongle.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_mdk_usb_dongle.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf52840_papyr.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_papyr.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf52840_papyr.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_papyr.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52811.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52811.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52811.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52811.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52840.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52840.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52840.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf52840dongle_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dongle_nrf52840.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf52840dongle_nrf52840.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dongle_nrf52840.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf52_adafruit_feather.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_adafruit_feather.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf52_adafruit_feather.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf52_adafruit_feather.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf52_blenano2.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_blenano2.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf52_blenano2.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf52_blenano2.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf52_sparkfun.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_sparkfun.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf52_sparkfun.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf52_sparkfun.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf52_vbluno52.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_vbluno52.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf52_vbluno52.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf52_vbluno52.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf52dk_nrf52805.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52805.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf52dk_nrf52805.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52805.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf52dk_nrf52810.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52810.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf52dk_nrf52810.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52810.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf52dk_nrf52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52832.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf52dk_nrf52832.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52832.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf5340_audio_dk_nrf5340.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf5340_audio_dk_nrf5340.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf5340_audio_dk_nrf5340.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf5340_audio_dk_nrf5340.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf5340dk_nrf5340.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf5340dk_nrf5340.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf5340dk_nrf5340.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf5340dk_nrf5340.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf9160_innblue21.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf9160_innblue21.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf9160_innblue21.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf9160_innblue21.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf9160_innblue22.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf9160_innblue22.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf9160_innblue22.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf9160_innblue22.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf9160dk_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf9160dk_nrf52840.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf9160dk_nrf52840.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf9160dk_nrf52840.md diff --git a/docs/hardware/6-catalog/unverified/arm_nrf9161dk_nrf9161.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf9161dk_nrf9161.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nrf9161dk_nrf9161.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nrf9161dk_nrf9161.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_c031c6.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_c031c6.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_c031c6.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_c031c6.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f030r8.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f030r8.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f030r8.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f030r8.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f031k6.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f031k6.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f031k6.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f031k6.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f042k6.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f042k6.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f042k6.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f042k6.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f070rb.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f070rb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f070rb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f070rb.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f091rc.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f091rc.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f091rc.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f091rc.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f103rb.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f103rb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f103rb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f103rb.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f207zg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f207zg.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f207zg.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f207zg.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f302r8.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f302r8.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f302r8.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f302r8.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f303k8.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f303k8.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f303k8.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f303k8.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f303re.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f303re.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f303re.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f303re.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f334r8.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f334r8.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f334r8.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f334r8.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f401re.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f401re.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f401re.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f401re.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f410rb.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f410rb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f410rb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f410rb.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f411re.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f411re.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f411re.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f411re.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f412zg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f412zg.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f412zg.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f412zg.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f413zh.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f413zh.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f413zh.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f413zh.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f429zi.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f429zi.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f429zi.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f429zi.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f446re.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f446re.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f446re.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f446re.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f446ze.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f446ze.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f446ze.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f446ze.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f746zg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f746zg.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f746zg.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f746zg.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f756zg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f756zg.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f756zg.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f756zg.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_f767zi.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f767zi.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_f767zi.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f767zi.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_g031k8.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g031k8.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_g031k8.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g031k8.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_g070rb.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g070rb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_g070rb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g070rb.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_g071rb.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g071rb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_g071rb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g071rb.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_g0b1re.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g0b1re.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_g0b1re.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g0b1re.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_g431rb.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g431rb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_g431rb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g431rb.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_g474re.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g474re.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_g474re.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g474re.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_h563zi.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h563zi.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_h563zi.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h563zi.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_h723zg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h723zg.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_h723zg.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h723zg.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_h743zi.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h743zi.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_h743zi.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h743zi.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_h745zi_q.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h745zi_q.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_h745zi_q.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h745zi_q.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_h753zi.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h753zi.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_h753zi.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h753zi.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_h7a3zi_q.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h7a3zi_q.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_h7a3zi_q.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h7a3zi_q.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_l011k4.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l011k4.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_l011k4.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l011k4.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_l031k6.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l031k6.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_l031k6.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l031k6.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_l053r8.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l053r8.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_l053r8.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l053r8.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_l073rz.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l073rz.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_l073rz.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l073rz.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_l152re.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l152re.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_l152re.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l152re.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_l412rb_p.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l412rb_p.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_l412rb_p.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l412rb_p.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_l432kc.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l432kc.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_l432kc.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l432kc.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_l433rc_p.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l433rc_p.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_l433rc_p.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l433rc_p.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_l452re.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l452re.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_l452re.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l452re.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_l476rg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l476rg.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_l476rg.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l476rg.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_l496zg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l496zg.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_l496zg.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l496zg.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_l4a6zg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l4a6zg.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_l4a6zg.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l4a6zg.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_l4r5zi.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l4r5zi.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_l4r5zi.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l4r5zi.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_l552ze_q.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l552ze_q.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_l552ze_q.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l552ze_q.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_u575zi_q.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_u575zi_q.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_u575zi_q.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_u575zi_q.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_u5a5zj_q.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_u5a5zj_q.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_u5a5zj_q.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_u5a5zj_q.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_wb55rg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wb55rg.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_wb55rg.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wb55rg.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_wba52cg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wba52cg.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_wba52cg.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wba52cg.md diff --git a/docs/hardware/6-catalog/unverified/arm_nucleo_wl55jc.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wl55jc.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nucleo_wl55jc.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wl55jc.md diff --git a/docs/hardware/6-catalog/unverified/arm_numaker_pfm_m467.md b/docs/firmware/hardware/6-catalog/unverified/arm_numaker_pfm_m467.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_numaker_pfm_m467.md rename to docs/firmware/hardware/6-catalog/unverified/arm_numaker_pfm_m467.md diff --git a/docs/hardware/6-catalog/unverified/arm_nuvoton_pfm_m487.md b/docs/firmware/hardware/6-catalog/unverified/arm_nuvoton_pfm_m487.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_nuvoton_pfm_m487.md rename to docs/firmware/hardware/6-catalog/unverified/arm_nuvoton_pfm_m487.md diff --git a/docs/hardware/6-catalog/unverified/arm_olimex_lora_stm32wl_devkit.md b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_lora_stm32wl_devkit.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_olimex_lora_stm32wl_devkit.md rename to docs/firmware/hardware/6-catalog/unverified/arm_olimex_lora_stm32wl_devkit.md diff --git a/docs/hardware/6-catalog/unverified/arm_olimex_stm32_e407.md b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_e407.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_olimex_stm32_e407.md rename to docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_e407.md diff --git a/docs/hardware/6-catalog/unverified/arm_olimex_stm32_h103.md b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h103.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_olimex_stm32_h103.md rename to docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h103.md diff --git a/docs/hardware/6-catalog/unverified/arm_olimex_stm32_h405.md b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h405.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_olimex_stm32_h405.md rename to docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h405.md diff --git a/docs/hardware/6-catalog/unverified/arm_olimex_stm32_h407.md b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h407.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_olimex_stm32_h407.md rename to docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h407.md diff --git a/docs/hardware/6-catalog/unverified/arm_olimex_stm32_p405.md b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_p405.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_olimex_stm32_p405.md rename to docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_p405.md diff --git a/docs/hardware/6-catalog/unverified/arm_olimexino_stm32.md b/docs/firmware/hardware/6-catalog/unverified/arm_olimexino_stm32.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_olimexino_stm32.md rename to docs/firmware/hardware/6-catalog/unverified/arm_olimexino_stm32.md diff --git a/docs/hardware/6-catalog/unverified/arm_pan1770_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_pan1770_evb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_pan1770_evb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_pan1770_evb.md diff --git a/docs/hardware/6-catalog/unverified/arm_pan1780_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_pan1780_evb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_pan1780_evb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_pan1780_evb.md diff --git a/docs/hardware/6-catalog/unverified/arm_pan1781_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_pan1781_evb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_pan1781_evb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_pan1781_evb.md diff --git a/docs/hardware/6-catalog/unverified/arm_pan1782_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_pan1782_evb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_pan1782_evb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_pan1782_evb.md diff --git a/docs/hardware/6-catalog/unverified/arm_pandora_stm32l475.md b/docs/firmware/hardware/6-catalog/unverified/arm_pandora_stm32l475.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_pandora_stm32l475.md rename to docs/firmware/hardware/6-catalog/unverified/arm_pandora_stm32l475.md diff --git a/docs/hardware/6-catalog/unverified/arm_particle_argon.md b/docs/firmware/hardware/6-catalog/unverified/arm_particle_argon.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_particle_argon.md rename to docs/firmware/hardware/6-catalog/unverified/arm_particle_argon.md diff --git a/docs/hardware/6-catalog/unverified/arm_particle_boron.md b/docs/firmware/hardware/6-catalog/unverified/arm_particle_boron.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_particle_boron.md rename to docs/firmware/hardware/6-catalog/unverified/arm_particle_boron.md diff --git a/docs/hardware/6-catalog/unverified/arm_particle_xenon.md b/docs/firmware/hardware/6-catalog/unverified/arm_particle_xenon.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_particle_xenon.md rename to docs/firmware/hardware/6-catalog/unverified/arm_particle_xenon.md diff --git a/docs/hardware/6-catalog/unverified/arm_pico_pi_m4.md b/docs/firmware/hardware/6-catalog/unverified/arm_pico_pi_m4.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_pico_pi_m4.md rename to docs/firmware/hardware/6-catalog/unverified/arm_pico_pi_m4.md diff --git a/docs/hardware/6-catalog/unverified/arm_pinetime_devkit0.md b/docs/firmware/hardware/6-catalog/unverified/arm_pinetime_devkit0.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_pinetime_devkit0.md rename to docs/firmware/hardware/6-catalog/unverified/arm_pinetime_devkit0.md diff --git a/docs/hardware/6-catalog/unverified/arm_pinnacle_100_dvk.md b/docs/firmware/hardware/6-catalog/unverified/arm_pinnacle_100_dvk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_pinnacle_100_dvk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_pinnacle_100_dvk.md diff --git a/docs/hardware/6-catalog/unverified/arm_qemu_cortex_a9.md b/docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_a9.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_qemu_cortex_a9.md rename to docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_a9.md diff --git a/docs/hardware/6-catalog/unverified/arm_qemu_cortex_m0.md b/docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_m0.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_qemu_cortex_m0.md rename to docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_m0.md diff --git a/docs/hardware/6-catalog/unverified/arm_qemu_cortex_r5.md b/docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_r5.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_qemu_cortex_r5.md rename to docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_r5.md diff --git a/docs/hardware/6-catalog/unverified/arm_qomu.md b/docs/firmware/hardware/6-catalog/unverified/arm_qomu.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_qomu.md rename to docs/firmware/hardware/6-catalog/unverified/arm_qomu.md diff --git a/docs/hardware/6-catalog/unverified/arm_quick_feather.md b/docs/firmware/hardware/6-catalog/unverified/arm_quick_feather.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_quick_feather.md rename to docs/firmware/hardware/6-catalog/unverified/arm_quick_feather.md diff --git a/docs/hardware/6-catalog/unverified/arm_rak4631_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_rak4631_nrf52840.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_rak4631_nrf52840.md rename to docs/firmware/hardware/6-catalog/unverified/arm_rak4631_nrf52840.md diff --git a/docs/hardware/6-catalog/unverified/arm_rak5010_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_rak5010_nrf52840.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_rak5010_nrf52840.md rename to docs/firmware/hardware/6-catalog/unverified/arm_rak5010_nrf52840.md diff --git a/docs/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_33_nrf52833.md b/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_33_nrf52833.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_33_nrf52833.md rename to docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_33_nrf52833.md diff --git a/docs/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_40_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_40_nrf52840.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_40_nrf52840.md rename to docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_40_nrf52840.md diff --git a/docs/hardware/6-catalog/unverified/arm_raytac_mdbt53_db_40_nrf5340.md b/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt53_db_40_nrf5340.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_raytac_mdbt53_db_40_nrf5340.md rename to docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt53_db_40_nrf5340.md diff --git a/docs/hardware/6-catalog/unverified/arm_raytac_mdbt53v_db_40_nrf5340.md b/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt53v_db_40_nrf5340.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_raytac_mdbt53v_db_40_nrf5340.md rename to docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt53v_db_40_nrf5340.md diff --git a/docs/hardware/6-catalog/unverified/arm_rcar_h3_salvatorx.md b/docs/firmware/hardware/6-catalog/unverified/arm_rcar_h3_salvatorx.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_rcar_h3_salvatorx.md rename to docs/firmware/hardware/6-catalog/unverified/arm_rcar_h3_salvatorx.md diff --git a/docs/hardware/6-catalog/unverified/arm_rcar_h3ulcb.md b/docs/firmware/hardware/6-catalog/unverified/arm_rcar_h3ulcb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_rcar_h3ulcb.md rename to docs/firmware/hardware/6-catalog/unverified/arm_rcar_h3ulcb.md diff --git a/docs/hardware/6-catalog/unverified/arm_rddrone_fmuk66.md b/docs/firmware/hardware/6-catalog/unverified/arm_rddrone_fmuk66.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_rddrone_fmuk66.md rename to docs/firmware/hardware/6-catalog/unverified/arm_rddrone_fmuk66.md diff --git a/docs/hardware/6-catalog/unverified/arm_reel_board.md b/docs/firmware/hardware/6-catalog/unverified/arm_reel_board.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_reel_board.md rename to docs/firmware/hardware/6-catalog/unverified/arm_reel_board.md diff --git a/docs/hardware/6-catalog/unverified/arm_rm1xx_dvk.md b/docs/firmware/hardware/6-catalog/unverified/arm_rm1xx_dvk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_rm1xx_dvk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_rm1xx_dvk.md diff --git a/docs/hardware/6-catalog/unverified/arm_ronoth_lodev.md b/docs/firmware/hardware/6-catalog/unverified/arm_ronoth_lodev.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_ronoth_lodev.md rename to docs/firmware/hardware/6-catalog/unverified/arm_ronoth_lodev.md diff --git a/docs/hardware/6-catalog/unverified/arm_rpi_pico.md b/docs/firmware/hardware/6-catalog/unverified/arm_rpi_pico.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_rpi_pico.md rename to docs/firmware/hardware/6-catalog/unverified/arm_rpi_pico.md diff --git a/docs/hardware/6-catalog/unverified/arm_ruuvi_ruuvitag.md b/docs/firmware/hardware/6-catalog/unverified/arm_ruuvi_ruuvitag.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_ruuvi_ruuvitag.md rename to docs/firmware/hardware/6-catalog/unverified/arm_ruuvi_ruuvitag.md diff --git a/docs/hardware/6-catalog/unverified/arm_s32z270dc2_r52.md b/docs/firmware/hardware/6-catalog/unverified/arm_s32z270dc2_r52.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_s32z270dc2_r52.md rename to docs/firmware/hardware/6-catalog/unverified/arm_s32z270dc2_r52.md diff --git a/docs/hardware/6-catalog/unverified/arm_sam4e_xpro.md b/docs/firmware/hardware/6-catalog/unverified/arm_sam4e_xpro.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_sam4e_xpro.md rename to docs/firmware/hardware/6-catalog/unverified/arm_sam4e_xpro.md diff --git a/docs/hardware/6-catalog/unverified/arm_sam4l_ek.md b/docs/firmware/hardware/6-catalog/unverified/arm_sam4l_ek.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_sam4l_ek.md rename to docs/firmware/hardware/6-catalog/unverified/arm_sam4l_ek.md diff --git a/docs/hardware/6-catalog/unverified/arm_sam4s_xplained.md b/docs/firmware/hardware/6-catalog/unverified/arm_sam4s_xplained.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_sam4s_xplained.md rename to docs/firmware/hardware/6-catalog/unverified/arm_sam4s_xplained.md diff --git a/docs/hardware/6-catalog/unverified/arm_sam_e70_xplained.md b/docs/firmware/hardware/6-catalog/unverified/arm_sam_e70_xplained.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_sam_e70_xplained.md rename to docs/firmware/hardware/6-catalog/unverified/arm_sam_e70_xplained.md diff --git a/docs/hardware/6-catalog/unverified/arm_sam_v71_xult.md b/docs/firmware/hardware/6-catalog/unverified/arm_sam_v71_xult.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_sam_v71_xult.md rename to docs/firmware/hardware/6-catalog/unverified/arm_sam_v71_xult.md diff --git a/docs/hardware/6-catalog/unverified/arm_scobc_module1.md b/docs/firmware/hardware/6-catalog/unverified/arm_scobc_module1.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_scobc_module1.md rename to docs/firmware/hardware/6-catalog/unverified/arm_scobc_module1.md diff --git a/docs/hardware/6-catalog/unverified/arm_seeeduino_xiao.md b/docs/firmware/hardware/6-catalog/unverified/arm_seeeduino_xiao.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_seeeduino_xiao.md rename to docs/firmware/hardware/6-catalog/unverified/arm_seeeduino_xiao.md diff --git a/docs/hardware/6-catalog/unverified/arm_segger_trb_stm32f407.md b/docs/firmware/hardware/6-catalog/unverified/arm_segger_trb_stm32f407.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_segger_trb_stm32f407.md rename to docs/firmware/hardware/6-catalog/unverified/arm_segger_trb_stm32f407.md diff --git a/docs/hardware/6-catalog/unverified/arm_sensortile_box.md b/docs/firmware/hardware/6-catalog/unverified/arm_sensortile_box.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_sensortile_box.md rename to docs/firmware/hardware/6-catalog/unverified/arm_sensortile_box.md diff --git a/docs/hardware/6-catalog/unverified/arm_serpente.md b/docs/firmware/hardware/6-catalog/unverified/arm_serpente.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_serpente.md rename to docs/firmware/hardware/6-catalog/unverified/arm_serpente.md diff --git a/docs/hardware/6-catalog/unverified/arm_sparkfun_pro_micro_rp2040.md b/docs/firmware/hardware/6-catalog/unverified/arm_sparkfun_pro_micro_rp2040.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_sparkfun_pro_micro_rp2040.md rename to docs/firmware/hardware/6-catalog/unverified/arm_sparkfun_pro_micro_rp2040.md diff --git a/docs/hardware/6-catalog/unverified/arm_sparkfun_thing_plus_nrf9160.md b/docs/firmware/hardware/6-catalog/unverified/arm_sparkfun_thing_plus_nrf9160.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_sparkfun_thing_plus_nrf9160.md rename to docs/firmware/hardware/6-catalog/unverified/arm_sparkfun_thing_plus_nrf9160.md diff --git a/docs/hardware/6-catalog/unverified/arm_steval_fcu001v1.md b/docs/firmware/hardware/6-catalog/unverified/arm_steval_fcu001v1.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_steval_fcu001v1.md rename to docs/firmware/hardware/6-catalog/unverified/arm_steval_fcu001v1.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm3210c_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm3210c_eval.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm3210c_eval.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm3210c_eval.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32373c_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32373c_eval.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32373c_eval.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32373c_eval.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32_min_dev.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32_min_dev.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32_min_dev.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32_min_dev.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32f030_demo.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f030_demo.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32f030_demo.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32f030_demo.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32f072_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f072_eval.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32f072_eval.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32f072_eval.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32f072b_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f072b_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32f072b_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32f072b_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32f0_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f0_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32f0_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32f0_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32f103_mini.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f103_mini.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32f103_mini.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32f103_mini.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32f3_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f3_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32f3_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32f3_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32f3_seco_d23.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f3_seco_d23.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32f3_seco_d23.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32f3_seco_d23.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32f401_mini.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f401_mini.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32f401_mini.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32f401_mini.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32f411e_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f411e_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32f411e_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32f411e_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32f412g_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f412g_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32f412g_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32f412g_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32f429i_disc1.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f429i_disc1.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32f429i_disc1.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32f429i_disc1.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32f469i_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f469i_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32f469i_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32f469i_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32f4_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f4_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32f4_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32f4_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32f723e_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f723e_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32f723e_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32f723e_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32f746g_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f746g_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32f746g_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32f746g_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32f7508_dk.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f7508_dk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32f7508_dk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32f7508_dk.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32f769i_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f769i_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32f769i_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32f769i_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32g0316_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32g0316_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32g0316_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32g0316_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32g071b_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32g071b_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32g071b_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32g071b_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32g081b_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32g081b_eval.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32g081b_eval.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32g081b_eval.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32h573i_dk.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32h573i_dk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32h573i_dk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32h573i_dk.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32h735g_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32h735g_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32h735g_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32h735g_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32h747i_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32h747i_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32h747i_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32h747i_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32h7b3i_dk.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32h7b3i_dk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32h7b3i_dk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32h7b3i_dk.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32l1_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32l1_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32l1_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32l1_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32l476g_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32l476g_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32l476g_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32l476g_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32l496g_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32l496g_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32l496g_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32l496g_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32l562e_dk.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32l562e_dk.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32l562e_dk.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32l562e_dk.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32mp157c_dk2.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32mp157c_dk2.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32mp157c_dk2.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32mp157c_dk2.md diff --git a/docs/hardware/6-catalog/unverified/arm_stm32vl_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32vl_disco.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_stm32vl_disco.md rename to docs/firmware/hardware/6-catalog/unverified/arm_stm32vl_disco.md diff --git a/docs/hardware/6-catalog/unverified/arm_swan_r5.md b/docs/firmware/hardware/6-catalog/unverified/arm_swan_r5.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_swan_r5.md rename to docs/firmware/hardware/6-catalog/unverified/arm_swan_r5.md diff --git a/docs/hardware/6-catalog/unverified/arm_tdk_robokit1.md b/docs/firmware/hardware/6-catalog/unverified/arm_tdk_robokit1.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_tdk_robokit1.md rename to docs/firmware/hardware/6-catalog/unverified/arm_tdk_robokit1.md diff --git a/docs/hardware/6-catalog/unverified/arm_teensy4.md b/docs/firmware/hardware/6-catalog/unverified/arm_teensy4.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_teensy4.md rename to docs/firmware/hardware/6-catalog/unverified/arm_teensy4.md diff --git a/docs/hardware/6-catalog/unverified/arm_thingy52_nrf52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_thingy52_nrf52832.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_thingy52_nrf52832.md rename to docs/firmware/hardware/6-catalog/unverified/arm_thingy52_nrf52832.md diff --git a/docs/hardware/6-catalog/unverified/arm_thingy53_nrf5340.md b/docs/firmware/hardware/6-catalog/unverified/arm_thingy53_nrf5340.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_thingy53_nrf5340.md rename to docs/firmware/hardware/6-catalog/unverified/arm_thingy53_nrf5340.md diff --git a/docs/hardware/6-catalog/unverified/arm_twr_ke18f.md b/docs/firmware/hardware/6-catalog/unverified/arm_twr_ke18f.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_twr_ke18f.md rename to docs/firmware/hardware/6-catalog/unverified/arm_twr_ke18f.md diff --git a/docs/hardware/6-catalog/unverified/arm_twr_kv58f220m.md b/docs/firmware/hardware/6-catalog/unverified/arm_twr_kv58f220m.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_twr_kv58f220m.md rename to docs/firmware/hardware/6-catalog/unverified/arm_twr_kv58f220m.md diff --git a/docs/hardware/6-catalog/unverified/arm_ubx_bmd300eval_nrf52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd300eval_nrf52832.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_ubx_bmd300eval_nrf52832.md rename to docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd300eval_nrf52832.md diff --git a/docs/hardware/6-catalog/unverified/arm_ubx_bmd330eval_nrf52810.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd330eval_nrf52810.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_ubx_bmd330eval_nrf52810.md rename to docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd330eval_nrf52810.md diff --git a/docs/hardware/6-catalog/unverified/arm_ubx_bmd340eval_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd340eval_nrf52840.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_ubx_bmd340eval_nrf52840.md rename to docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd340eval_nrf52840.md diff --git a/docs/hardware/6-catalog/unverified/arm_ubx_bmd345eval_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd345eval_nrf52840.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_ubx_bmd345eval_nrf52840.md rename to docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd345eval_nrf52840.md diff --git a/docs/hardware/6-catalog/unverified/arm_ubx_bmd360eval_nrf52811.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd360eval_nrf52811.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_ubx_bmd360eval_nrf52811.md rename to docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd360eval_nrf52811.md diff --git a/docs/hardware/6-catalog/unverified/arm_ubx_bmd380eval_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd380eval_nrf52840.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_ubx_bmd380eval_nrf52840.md rename to docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd380eval_nrf52840.md diff --git a/docs/hardware/6-catalog/unverified/arm_ubx_evkannab1_nrf52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkannab1_nrf52832.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_ubx_evkannab1_nrf52832.md rename to docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkannab1_nrf52832.md diff --git a/docs/hardware/6-catalog/unverified/arm_ubx_evkninab1_nrf52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab1_nrf52832.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_ubx_evkninab1_nrf52832.md rename to docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab1_nrf52832.md diff --git a/docs/hardware/6-catalog/unverified/arm_ubx_evkninab3_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab3_nrf52840.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_ubx_evkninab3_nrf52840.md rename to docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab3_nrf52840.md diff --git a/docs/hardware/6-catalog/unverified/arm_ubx_evkninab4_nrf52833.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab4_nrf52833.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_ubx_evkninab4_nrf52833.md rename to docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab4_nrf52833.md diff --git a/docs/hardware/6-catalog/unverified/arm_udoo_neo_full_m4.md b/docs/firmware/hardware/6-catalog/unverified/arm_udoo_neo_full_m4.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_udoo_neo_full_m4.md rename to docs/firmware/hardware/6-catalog/unverified/arm_udoo_neo_full_m4.md diff --git a/docs/hardware/6-catalog/unverified/arm_usb_kw24d512.md b/docs/firmware/hardware/6-catalog/unverified/arm_usb_kw24d512.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_usb_kw24d512.md rename to docs/firmware/hardware/6-catalog/unverified/arm_usb_kw24d512.md diff --git a/docs/hardware/6-catalog/unverified/arm_v2m_beetle.md b/docs/firmware/hardware/6-catalog/unverified/arm_v2m_beetle.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_v2m_beetle.md rename to docs/firmware/hardware/6-catalog/unverified/arm_v2m_beetle.md diff --git a/docs/hardware/6-catalog/unverified/arm_v2m_musca_b1.md b/docs/firmware/hardware/6-catalog/unverified/arm_v2m_musca_b1.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_v2m_musca_b1.md rename to docs/firmware/hardware/6-catalog/unverified/arm_v2m_musca_b1.md diff --git a/docs/hardware/6-catalog/unverified/arm_v2m_musca_s1.md b/docs/firmware/hardware/6-catalog/unverified/arm_v2m_musca_s1.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_v2m_musca_s1.md rename to docs/firmware/hardware/6-catalog/unverified/arm_v2m_musca_s1.md diff --git a/docs/hardware/6-catalog/unverified/arm_vmu_rt1170.md b/docs/firmware/hardware/6-catalog/unverified/arm_vmu_rt1170.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_vmu_rt1170.md rename to docs/firmware/hardware/6-catalog/unverified/arm_vmu_rt1170.md diff --git a/docs/hardware/6-catalog/unverified/arm_warp7_m4.md b/docs/firmware/hardware/6-catalog/unverified/arm_warp7_m4.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_warp7_m4.md rename to docs/firmware/hardware/6-catalog/unverified/arm_warp7_m4.md diff --git a/docs/hardware/6-catalog/unverified/arm_waveshare_open103z.md b/docs/firmware/hardware/6-catalog/unverified/arm_waveshare_open103z.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_waveshare_open103z.md rename to docs/firmware/hardware/6-catalog/unverified/arm_waveshare_open103z.md diff --git a/docs/hardware/6-catalog/unverified/arm_we_ophelia1ev_nrf52805.md b/docs/firmware/hardware/6-catalog/unverified/arm_we_ophelia1ev_nrf52805.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_we_ophelia1ev_nrf52805.md rename to docs/firmware/hardware/6-catalog/unverified/arm_we_ophelia1ev_nrf52805.md diff --git a/docs/hardware/6-catalog/unverified/arm_we_proteus2ev_nrf52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_we_proteus2ev_nrf52832.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_we_proteus2ev_nrf52832.md rename to docs/firmware/hardware/6-catalog/unverified/arm_we_proteus2ev_nrf52832.md diff --git a/docs/hardware/6-catalog/unverified/arm_we_proteus3ev_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_we_proteus3ev_nrf52840.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_we_proteus3ev_nrf52840.md rename to docs/firmware/hardware/6-catalog/unverified/arm_we_proteus3ev_nrf52840.md diff --git a/docs/hardware/6-catalog/unverified/arm_wio_terminal.md b/docs/firmware/hardware/6-catalog/unverified/arm_wio_terminal.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_wio_terminal.md rename to docs/firmware/hardware/6-catalog/unverified/arm_wio_terminal.md diff --git a/docs/hardware/6-catalog/unverified/arm_xiao_ble.md b/docs/firmware/hardware/6-catalog/unverified/arm_xiao_ble.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_xiao_ble.md rename to docs/firmware/hardware/6-catalog/unverified/arm_xiao_ble.md diff --git a/docs/hardware/6-catalog/unverified/arm_xmc45_relax_kit.md b/docs/firmware/hardware/6-catalog/unverified/arm_xmc45_relax_kit.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_xmc45_relax_kit.md rename to docs/firmware/hardware/6-catalog/unverified/arm_xmc45_relax_kit.md diff --git a/docs/hardware/6-catalog/unverified/arm_xmc47_relax_kit.md b/docs/firmware/hardware/6-catalog/unverified/arm_xmc47_relax_kit.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_xmc47_relax_kit.md rename to docs/firmware/hardware/6-catalog/unverified/arm_xmc47_relax_kit.md diff --git a/docs/hardware/6-catalog/unverified/arm_zybo.md b/docs/firmware/hardware/6-catalog/unverified/arm_zybo.md similarity index 100% rename from docs/hardware/6-catalog/unverified/arm_zybo.md rename to docs/firmware/hardware/6-catalog/unverified/arm_zybo.md diff --git a/docs/hardware/6-catalog/unverified/mips_qemu_malta.md b/docs/firmware/hardware/6-catalog/unverified/mips_qemu_malta.md similarity index 100% rename from docs/hardware/6-catalog/unverified/mips_qemu_malta.md rename to docs/firmware/hardware/6-catalog/unverified/mips_qemu_malta.md diff --git a/docs/hardware/6-catalog/unverified/nios2_altera_max10.md b/docs/firmware/hardware/6-catalog/unverified/nios2_altera_max10.md similarity index 100% rename from docs/hardware/6-catalog/unverified/nios2_altera_max10.md rename to docs/firmware/hardware/6-catalog/unverified/nios2_altera_max10.md diff --git a/docs/hardware/6-catalog/unverified/nios2_qemu_nios2.md b/docs/firmware/hardware/6-catalog/unverified/nios2_qemu_nios2.md similarity index 100% rename from docs/hardware/6-catalog/unverified/nios2_qemu_nios2.md rename to docs/firmware/hardware/6-catalog/unverified/nios2_qemu_nios2.md diff --git a/docs/hardware/6-catalog/unverified/posix_common.md b/docs/firmware/hardware/6-catalog/unverified/posix_common.md similarity index 100% rename from docs/hardware/6-catalog/unverified/posix_common.md rename to docs/firmware/hardware/6-catalog/unverified/posix_common.md diff --git a/docs/hardware/6-catalog/unverified/posix_doc.md b/docs/firmware/hardware/6-catalog/unverified/posix_doc.md similarity index 100% rename from docs/hardware/6-catalog/unverified/posix_doc.md rename to docs/firmware/hardware/6-catalog/unverified/posix_doc.md diff --git a/docs/hardware/6-catalog/unverified/posix_native_posix.md b/docs/firmware/hardware/6-catalog/unverified/posix_native_posix.md similarity index 100% rename from docs/hardware/6-catalog/unverified/posix_native_posix.md rename to docs/firmware/hardware/6-catalog/unverified/posix_native_posix.md diff --git a/docs/hardware/6-catalog/unverified/posix_native_sim.md b/docs/firmware/hardware/6-catalog/unverified/posix_native_sim.md similarity index 100% rename from docs/hardware/6-catalog/unverified/posix_native_sim.md rename to docs/firmware/hardware/6-catalog/unverified/posix_native_sim.md diff --git a/docs/hardware/6-catalog/unverified/posix_nrf_bsim.md b/docs/firmware/hardware/6-catalog/unverified/posix_nrf_bsim.md similarity index 100% rename from docs/hardware/6-catalog/unverified/posix_nrf_bsim.md rename to docs/firmware/hardware/6-catalog/unverified/posix_nrf_bsim.md diff --git a/docs/hardware/6-catalog/unverified/riscv_adp_xc7k_ae350.md b/docs/firmware/hardware/6-catalog/unverified/riscv_adp_xc7k_ae350.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_adp_xc7k_ae350.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_adp_xc7k_ae350.md diff --git a/docs/hardware/6-catalog/unverified/riscv_esp32c3_devkitm.md b/docs/firmware/hardware/6-catalog/unverified/riscv_esp32c3_devkitm.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_esp32c3_devkitm.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_esp32c3_devkitm.md diff --git a/docs/hardware/6-catalog/unverified/riscv_esp32c3_luatos_core.md b/docs/firmware/hardware/6-catalog/unverified/riscv_esp32c3_luatos_core.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_esp32c3_luatos_core.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_esp32c3_luatos_core.md diff --git a/docs/hardware/6-catalog/unverified/riscv_gd32vf103c_starter.md b/docs/firmware/hardware/6-catalog/unverified/riscv_gd32vf103c_starter.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_gd32vf103c_starter.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_gd32vf103c_starter.md diff --git a/docs/hardware/6-catalog/unverified/riscv_gd32vf103v_eval.md b/docs/firmware/hardware/6-catalog/unverified/riscv_gd32vf103v_eval.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_gd32vf103v_eval.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_gd32vf103v_eval.md diff --git a/docs/hardware/6-catalog/unverified/riscv_hifive1.md b/docs/firmware/hardware/6-catalog/unverified/riscv_hifive1.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_hifive1.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_hifive1.md diff --git a/docs/hardware/6-catalog/unverified/riscv_hifive1_revb.md b/docs/firmware/hardware/6-catalog/unverified/riscv_hifive1_revb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_hifive1_revb.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_hifive1_revb.md diff --git a/docs/hardware/6-catalog/unverified/riscv_hifive_unleashed.md b/docs/firmware/hardware/6-catalog/unverified/riscv_hifive_unleashed.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_hifive_unleashed.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_hifive_unleashed.md diff --git a/docs/hardware/6-catalog/unverified/riscv_hifive_unmatched.md b/docs/firmware/hardware/6-catalog/unverified/riscv_hifive_unmatched.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_hifive_unmatched.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_hifive_unmatched.md diff --git a/docs/hardware/6-catalog/unverified/riscv_icev_wireless.md b/docs/firmware/hardware/6-catalog/unverified/riscv_icev_wireless.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_icev_wireless.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_icev_wireless.md diff --git a/docs/hardware/6-catalog/unverified/riscv_it82xx2_evb.md b/docs/firmware/hardware/6-catalog/unverified/riscv_it82xx2_evb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_it82xx2_evb.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_it82xx2_evb.md diff --git a/docs/hardware/6-catalog/unverified/riscv_it8xxx2_evb.md b/docs/firmware/hardware/6-catalog/unverified/riscv_it8xxx2_evb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_it8xxx2_evb.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_it8xxx2_evb.md diff --git a/docs/hardware/6-catalog/unverified/riscv_litex_vexriscv.md b/docs/firmware/hardware/6-catalog/unverified/riscv_litex_vexriscv.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_litex_vexriscv.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_litex_vexriscv.md diff --git a/docs/hardware/6-catalog/unverified/riscv_longan_nano.md b/docs/firmware/hardware/6-catalog/unverified/riscv_longan_nano.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_longan_nano.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_longan_nano.md diff --git a/docs/hardware/6-catalog/unverified/riscv_m2gl025_miv.md b/docs/firmware/hardware/6-catalog/unverified/riscv_m2gl025_miv.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_m2gl025_miv.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_m2gl025_miv.md diff --git a/docs/hardware/6-catalog/unverified/riscv_mpfs_icicle.md b/docs/firmware/hardware/6-catalog/unverified/riscv_mpfs_icicle.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_mpfs_icicle.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_mpfs_icicle.md diff --git a/docs/hardware/6-catalog/unverified/riscv_neorv32.md b/docs/firmware/hardware/6-catalog/unverified/riscv_neorv32.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_neorv32.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_neorv32.md diff --git a/docs/hardware/6-catalog/unverified/riscv_niosv_g.md b/docs/firmware/hardware/6-catalog/unverified/riscv_niosv_g.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_niosv_g.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_niosv_g.md diff --git a/docs/hardware/6-catalog/unverified/riscv_niosv_m.md b/docs/firmware/hardware/6-catalog/unverified/riscv_niosv_m.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_niosv_m.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_niosv_m.md diff --git a/docs/hardware/6-catalog/unverified/riscv_opentitan_earlgrey.md b/docs/firmware/hardware/6-catalog/unverified/riscv_opentitan_earlgrey.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_opentitan_earlgrey.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_opentitan_earlgrey.md diff --git a/docs/hardware/6-catalog/unverified/riscv_qemu_riscv32.md b/docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv32.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_qemu_riscv32.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv32.md diff --git a/docs/hardware/6-catalog/unverified/riscv_qemu_riscv32e.md b/docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv32e.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_qemu_riscv32e.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv32e.md diff --git a/docs/hardware/6-catalog/unverified/riscv_qemu_riscv64.md b/docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv64.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_qemu_riscv64.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv64.md diff --git a/docs/hardware/6-catalog/unverified/riscv_rv32m1_vega.md b/docs/firmware/hardware/6-catalog/unverified/riscv_rv32m1_vega.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_rv32m1_vega.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_rv32m1_vega.md diff --git a/docs/hardware/6-catalog/unverified/riscv_sparkfun_red_v_things_plus.md b/docs/firmware/hardware/6-catalog/unverified/riscv_sparkfun_red_v_things_plus.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_sparkfun_red_v_things_plus.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_sparkfun_red_v_things_plus.md diff --git a/docs/hardware/6-catalog/unverified/riscv_stamp_c3.md b/docs/firmware/hardware/6-catalog/unverified/riscv_stamp_c3.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_stamp_c3.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_stamp_c3.md diff --git a/docs/hardware/6-catalog/unverified/riscv_titanium_ti60_f225.md b/docs/firmware/hardware/6-catalog/unverified/riscv_titanium_ti60_f225.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_titanium_ti60_f225.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_titanium_ti60_f225.md diff --git a/docs/hardware/6-catalog/unverified/riscv_tlsr9518adk80d.md b/docs/firmware/hardware/6-catalog/unverified/riscv_tlsr9518adk80d.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_tlsr9518adk80d.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_tlsr9518adk80d.md diff --git a/docs/hardware/6-catalog/unverified/riscv_xiao_esp32c3.md b/docs/firmware/hardware/6-catalog/unverified/riscv_xiao_esp32c3.md similarity index 100% rename from docs/hardware/6-catalog/unverified/riscv_xiao_esp32c3.md rename to docs/firmware/hardware/6-catalog/unverified/riscv_xiao_esp32c3.md diff --git a/docs/hardware/6-catalog/unverified/sparc_generic_leon3.md b/docs/firmware/hardware/6-catalog/unverified/sparc_generic_leon3.md similarity index 100% rename from docs/hardware/6-catalog/unverified/sparc_generic_leon3.md rename to docs/firmware/hardware/6-catalog/unverified/sparc_generic_leon3.md diff --git a/docs/hardware/6-catalog/unverified/sparc_gr716a_mini.md b/docs/firmware/hardware/6-catalog/unverified/sparc_gr716a_mini.md similarity index 100% rename from docs/hardware/6-catalog/unverified/sparc_gr716a_mini.md rename to docs/firmware/hardware/6-catalog/unverified/sparc_gr716a_mini.md diff --git a/docs/hardware/6-catalog/unverified/sparc_qemu_leon3.md b/docs/firmware/hardware/6-catalog/unverified/sparc_qemu_leon3.md similarity index 100% rename from docs/hardware/6-catalog/unverified/sparc_qemu_leon3.md rename to docs/firmware/hardware/6-catalog/unverified/sparc_qemu_leon3.md diff --git a/docs/hardware/6-catalog/unverified/x86_acrn.md b/docs/firmware/hardware/6-catalog/unverified/x86_acrn.md similarity index 100% rename from docs/hardware/6-catalog/unverified/x86_acrn.md rename to docs/firmware/hardware/6-catalog/unverified/x86_acrn.md diff --git a/docs/hardware/6-catalog/unverified/x86_common.md b/docs/firmware/hardware/6-catalog/unverified/x86_common.md similarity index 100% rename from docs/hardware/6-catalog/unverified/x86_common.md rename to docs/firmware/hardware/6-catalog/unverified/x86_common.md diff --git a/docs/hardware/6-catalog/unverified/x86_intel_adl.md b/docs/firmware/hardware/6-catalog/unverified/x86_intel_adl.md similarity index 100% rename from docs/hardware/6-catalog/unverified/x86_intel_adl.md rename to docs/firmware/hardware/6-catalog/unverified/x86_intel_adl.md diff --git a/docs/hardware/6-catalog/unverified/x86_intel_ehl.md b/docs/firmware/hardware/6-catalog/unverified/x86_intel_ehl.md similarity index 100% rename from docs/hardware/6-catalog/unverified/x86_intel_ehl.md rename to docs/firmware/hardware/6-catalog/unverified/x86_intel_ehl.md diff --git a/docs/hardware/6-catalog/unverified/x86_intel_ish.md b/docs/firmware/hardware/6-catalog/unverified/x86_intel_ish.md similarity index 100% rename from docs/hardware/6-catalog/unverified/x86_intel_ish.md rename to docs/firmware/hardware/6-catalog/unverified/x86_intel_ish.md diff --git a/docs/hardware/6-catalog/unverified/x86_intel_rpl.md b/docs/firmware/hardware/6-catalog/unverified/x86_intel_rpl.md similarity index 100% rename from docs/hardware/6-catalog/unverified/x86_intel_rpl.md rename to docs/firmware/hardware/6-catalog/unverified/x86_intel_rpl.md diff --git a/docs/hardware/6-catalog/unverified/x86_qemu_x86.md b/docs/firmware/hardware/6-catalog/unverified/x86_qemu_x86.md similarity index 100% rename from docs/hardware/6-catalog/unverified/x86_qemu_x86.md rename to docs/firmware/hardware/6-catalog/unverified/x86_qemu_x86.md diff --git a/docs/hardware/6-catalog/unverified/x86_up_squared.md b/docs/firmware/hardware/6-catalog/unverified/x86_up_squared.md similarity index 100% rename from docs/hardware/6-catalog/unverified/x86_up_squared.md rename to docs/firmware/hardware/6-catalog/unverified/x86_up_squared.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wroom.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wroom.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wroom.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wroom.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wrover.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wrover.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wrover.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wrover.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_esp32_ethernet_kit.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_ethernet_kit.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_esp32_ethernet_kit.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_ethernet_kit.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_esp32_net.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_net.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_esp32_net.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_net.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_esp32s2_franzininho.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s2_franzininho.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_esp32s2_franzininho.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s2_franzininho.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_esp32s2_saola.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s2_saola.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_esp32s2_saola.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s2_saola.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_esp32s3_devkitm.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s3_devkitm.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_esp32s3_devkitm.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s3_devkitm.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_esp32s3_luatos_core.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s3_luatos_core.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_esp32s3_luatos_core.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s3_luatos_core.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_esp_wrover_kit.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp_wrover_kit.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_esp_wrover_kit.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_esp_wrover_kit.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_heltec_wifi_lora32_v2.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_heltec_wifi_lora32_v2.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_heltec_wifi_lora32_v2.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_heltec_wifi_lora32_v2.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_intel_adsp_ace15_mtpm.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_ace15_mtpm.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_intel_adsp_ace15_mtpm.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_ace15_mtpm.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_intel_adsp_ace20_lnl.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_ace20_lnl.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_intel_adsp_ace20_lnl.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_ace20_lnl.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_intel_adsp_cavs25.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_cavs25.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_intel_adsp_cavs25.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_cavs25.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_m5stack_core2.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_m5stack_core2.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_m5stack_core2.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_m5stack_core2.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_m5stickc_plus.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_m5stickc_plus.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_m5stickc_plus.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_m5stickc_plus.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8m.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8m.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8m.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8m.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8x.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8x.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8x.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8x.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_odroid_go.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_odroid_go.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_odroid_go.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_odroid_go.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_olimex_esp32_evb.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_olimex_esp32_evb.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_olimex_esp32_evb.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_olimex_esp32_evb.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_qemu_xtensa.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_qemu_xtensa.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_qemu_xtensa.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_qemu_xtensa.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_xiao_esp32s3.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_xiao_esp32s3.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_xiao_esp32s3.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_xiao_esp32s3.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_xt-sim.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_xt-sim.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_xt-sim.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_xt-sim.md diff --git a/docs/hardware/6-catalog/unverified/xtensa_yd_esp32.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_yd_esp32.md similarity index 100% rename from docs/hardware/6-catalog/unverified/xtensa_yd_esp32.md rename to docs/firmware/hardware/6-catalog/unverified/xtensa_yd_esp32.md diff --git a/docs/hardware/6-catalog/verified/_category_.yml b/docs/firmware/hardware/6-catalog/verified/_category_.yml similarity index 100% rename from docs/hardware/6-catalog/verified/_category_.yml rename to docs/firmware/hardware/6-catalog/verified/_category_.yml diff --git a/docs/hardware/6-catalog/verified/arm_circuitdojo_feather_nrf9160.md b/docs/firmware/hardware/6-catalog/verified/arm_circuitdojo_feather_nrf9160.md similarity index 100% rename from docs/hardware/6-catalog/verified/arm_circuitdojo_feather_nrf9160.md rename to docs/firmware/hardware/6-catalog/verified/arm_circuitdojo_feather_nrf9160.md diff --git a/docs/hardware/1-home.md b/docs/firmware/hardware/README.md similarity index 99% rename from docs/hardware/1-home.md rename to docs/firmware/hardware/README.md index 42b2e9ef..c0281469 100644 --- a/docs/hardware/1-home.md +++ b/docs/firmware/hardware/README.md @@ -1,6 +1,6 @@ --- id: overview -title: Hardware Overview +title: Hardware hide_title: false slug: /hardware --- diff --git a/docs/hardware/assets/boards.json b/docs/firmware/hardware/assets/boards.json similarity index 100% rename from docs/hardware/assets/boards.json rename to docs/firmware/hardware/assets/boards.json diff --git a/docs/hardware/assets/hardware-catalog.css b/docs/firmware/hardware/assets/hardware-catalog.css similarity index 100% rename from docs/hardware/assets/hardware-catalog.css rename to docs/firmware/hardware/assets/hardware-catalog.css diff --git a/docs/hardware/assets/img/magnifier.svg b/docs/firmware/hardware/assets/img/magnifier.svg similarity index 100% rename from docs/hardware/assets/img/magnifier.svg rename to docs/firmware/hardware/assets/img/magnifier.svg diff --git a/docs/getting-started/1-overview.md b/docs/getting-started/1-overview.md index 3efde82e..c290bcc4 100644 --- a/docs/getting-started/1-overview.md +++ b/docs/getting-started/1-overview.md @@ -9,7 +9,7 @@ This guide will prepare your Golioth account to communicate directly with your h * [Register for your account on Golioth](https://console.golioth.io/login/) * Add a project and provision your first device -Once completed, you can to move on to [the Hardware section](../hardware/1-home.md) to get a device (or emulated device) communicating with the Golioth Cloud. +Once completed, you can to move on to [the Hardware section](/docs/firmware/hardware/1-home.md) to get a device (or emulated device) communicating with the Golioth Cloud. ## Choose Golioth Console or Command Line Tools diff --git a/docs/partials-common/prerequisites-device.md b/docs/partials-common/prerequisites-device.md index b88c6c05..3092f395 100644 --- a/docs/partials-common/prerequisites-device.md +++ b/docs/partials-common/prerequisites-device.md @@ -4,5 +4,5 @@ - Authenticated with Golioth - see [Authentication](/getting-started/3-commandline/3-authentication.md) - Have a project - see [Create a Project](/getting-started/3-commandline/4-create-project.md) - Have a provisioned device and credential for it - see [Authorizing Devices](/getting-started/3-commandline/6-authorize-devices.md) -- The `golioth/zephyr` codebase set up on your machine. See the [Set up Zephyr](/hardware/2-esp32/2-zephyr-quickstart/2-set-up-zephyr.md) page for the ESP32. +- The `golioth/zephyr` codebase set up on your machine. See the [Set up Zephyr](/firmware/hardware/2-esp32/2-zephyr-quickstart/2-set-up-zephyr.md) page for the ESP32. - A toolchain installed. In this guide, the toolchain for the ESP32 will be used. diff --git a/docs/partials-common/unused/install-device-toolchain.md b/docs/partials-common/unused/install-device-toolchain.md index 02a5549c..856dae8f 100644 --- a/docs/partials-common/unused/install-device-toolchain.md +++ b/docs/partials-common/unused/install-device-toolchain.md @@ -12,7 +12,7 @@ values={[ ]}> -import SetupEsp from '/docs/hardware/2-esp32/2-zephyr-quickstart/\_partials/install-espressif-toolchain.md' +import SetupEsp from '/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/\_partials/install-espressif-toolchain.md' diff --git a/docusaurus.config.js b/docusaurus.config.js index 92c1aaac..ef77e6d1 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -27,12 +27,6 @@ module.exports = { label: "Getting Started", position: "left", }, - { - to: "hardware", - activeBasePath: "hardware", - label: "Hardware", - position: "left", - }, { to: "firmware", activeBasePath: "firmware", diff --git a/scripts/device-catalog/index.js b/scripts/device-catalog/index.js index f70d4d6e..9989e1d9 100644 --- a/scripts/device-catalog/index.js +++ b/scripts/device-catalog/index.js @@ -4,9 +4,9 @@ const boardsToJsonFile = require('./boardsToJsonFile'); const boardToMdx = require('./boardToMdx'); const zephyrRoot = './vendor/zephyr'; -const docsRoot = './docs/hardware/6-catalog'; +const docsRoot = './docs/firmware/hardware/6-catalog'; const imgRoot = './static/img/boards'; -const boardsFile = './docs/hardware/assets/boards.json'; +const boardsFile = './docs/firmware/hardware/assets/boards.json'; const verifications = JSON.parse(fs.readFileSync('./scripts/device-catalog/support.json')); diff --git a/sidebars.js b/sidebars.js index a4c1b9f2..52970615 100644 --- a/sidebars.js +++ b/sidebars.js @@ -16,56 +16,37 @@ const mapFiles = (root,type) => { .map( f => `${root}/${type}/${f}`) } -const hardware = [ - - { - type: 'autogenerated', - dirName: 'hardware', - }, -] - const firmware = [ { type: 'autogenerated', - dirName: 'firmware', + dirName: 'firmware', }, ] const reference = [ { type: 'autogenerated', - dirName: 'reference', + dirName: 'reference', }, ] const gettingstarted = [ { type: 'autogenerated', - dirName: 'getting-started', + dirName: 'getting-started', }, ] - - -// const concepts = [ -// { -// type: 'autogenerated', -// dirName: 'concepts', -// }, -// ] - const cloud = [ { type: 'autogenerated', - dirName: 'cloud', + dirName: 'cloud', }, ] module.exports = { gettingstarted, reference, - // concepts, - hardware, firmware, cloud, }; From 54cc5c8121a8ae68ac1b60153b68f2a1575fc2e0 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Tue, 21 Nov 2023 10:55:30 -0600 Subject: [PATCH 03/88] reorg: rename cloud section to device-management Broad strokes to reorganize our docs. This commit renames the cloud section to device-management. Signed-off-by: Mike Szczys --- docs/concepts/3-device_services.md | 2 +- docs/concepts/4-device_sdks.md | 2 +- docs/{cloud => device-management}/1-home.md | 4 ++-- .../1-services/2-lightdb/2-structure-data.md | 0 .../1-services/2-lightdb/3-read-write-data.md | 0 .../1-services/2-lightdb/4-simulating-devices.md | 0 .../1-services/2-lightdb/README.md | 2 +- .../1-services/2-lightdb/_category_.yml | 0 .../1-services/3-logging/2-searching-logs.md | 0 .../1-services/3-logging/3-sending-logs.md | 0 .../1-services/3-logging/README.md | 2 +- .../1-services/3-logging/_category_.yml | 0 .../1-services/4-lightdb-stream/2-sending-data.md | 0 .../1-services/4-lightdb-stream/3-querying-data.md | 0 .../1-services/4-lightdb-stream/README.md | 2 +- .../1-services/4-lightdb-stream/_category_.yml | 0 .../1-services/5-ota/2-uploading-artifacts.md | 0 .../1-services/5-ota/3-release-firmware-update.md | 0 .../1-services/5-ota/README.md | 2 +- .../1-services/5-ota/_category_.yml | 0 .../1-services/5-ota/assets/artifact-list.png | Bin .../1-services/5-ota/assets/release-list.png | Bin .../1-services/5-ota/assets/release-no-tags.png | Bin .../1-services/6-settings/1-settings-structure.md | 0 .../1-services/6-settings/2-console-settings.md | 0 .../1-services/6-settings/README.md | 2 +- .../1-services/6-settings/_category_.yml | 0 .../6-settings/assets/blueprint-listing.png | Bin .../6-settings/assets/create-setting-modal.png | Bin .../6-settings/assets/device-settings-main-page.png | Bin .../6-settings/assets/device-settings-tab.png | Bin .../assets/listing-blueprint-level-settings.png | Bin .../assets/listing-device-level-settings.png | Bin .../listing-overrided-rpm-setting-dvc-lvl.png | Bin .../assets/listing-project-level-settings.png | Bin .../6-settings/assets/overrides-hierarchy.png | Bin .../1-services/6-settings/assets/sync-status.png | Bin .../1-services/README.md | 2 +- .../1-services/_category_.yml | 0 .../2-output-streams/1-mongo/README.md | 2 +- .../2-output-streams/1-mongo/_category_.yml | 0 .../1-mongo/assets/add-ip-address.png | Bin .../1-mongo/assets/atlas-connect-button.png | Bin .../1-mongo/assets/atlas-connection-string.png | Bin .../1-mongo/assets/atlas-network-access.png | Bin .../assets/choosing-timeseries-additional-prefs.png | Bin .../1-mongo/assets/create-collection-button.png | Bin .../1-mongo/assets/create-collection-form.png | Bin .../1-mongo/assets/create-outputstream-form.png | Bin .../1-mongo/assets/ip-access-list-entry.png | Bin .../1-mongo/assets/select-outputstream.png | Bin .../1-mongo/assets/timefield-metafield-form.png | Bin .../2-output-streams/2-webhook/README.md | 6 +++--- .../2-output-streams/2-webhook/_category_.yml | 0 .../2-output-streams/3-azure-event-hub/README.md | 6 +++--- .../3-azure-event-hub/_category_.yml | 0 .../2-output-streams/4-aws-sqs/README.md | 6 +++--- .../2-output-streams/4-aws-sqs/_category_.yml | 0 .../2-output-streams/4-aws-sqs/assets/msg-body.png | Bin .../4-aws-sqs/assets/msg-header.png | Bin .../2-output-streams/5-gcp-pubsub/README.md | 4 ++-- .../2-output-streams/5-gcp-pubsub/_category_.yml | 0 .../5-gcp-pubsub/assets/gcp-created-service-acc.png | Bin .../assets/gcp-detailing-service-acc.png | Bin .../assets/gcp-iam-create-service-acc.png | Bin .../5-gcp-pubsub/assets/gcp-pubsub-topic-name.png | Bin .../5-gcp-pubsub/assets/gcp-pubsub-topics.png | Bin .../golioth-creating-pubsub-output-stream.png | Bin .../assets/golioth-gcp-output-stream.png | Bin .../2-output-streams/6-datacake/README.md | 4 ++-- .../2-output-streams/6-datacake/_category_.yml | 0 .../2-output-streams/7-ubidots/README.md | 4 ++-- .../2-output-streams/7-ubidots/_category_.yml | 0 .../2-output-streams/8-influx/README.md | 2 +- .../2-output-streams/8-influx/_category_.yml | 0 .../8-influx/assets/2023-07-20_15-37.png | Bin .../2-output-streams/8-influx/assets/buckets.png | Bin .../8-influx/assets/cluster-url.png | Bin .../8-influx/assets/create-outputstream-form.png | Bin .../8-influx/assets/generate-token-button.png | Bin .../8-influx/assets/generate-token.png | Bin .../8-influx/assets/load-data-menu.png | Bin .../8-influx/assets/org-settings-menu.png | Bin .../8-influx/assets/select-outputstream.png | Bin .../8-influx/assets/token-create-form.png | Bin .../2-output-streams/9-event-types/2-events.mdx | 0 .../2-output-streams/9-event-types/README.md | 2 +- .../2-output-streams/9-event-types/_category_.yml | 0 .../2-output-streams/README.md | 2 +- .../2-output-streams/_category_.yml | 0 .../2-output-streams/messages.json | 0 .../assets/golioth-pricing-snip.png | Bin .../output-streams_azure-event-hub-connect.png | Bin .../output-streams_azure-event-hub-send-policy.png | Bin ...output-streams_azure-event-hub-shared-access.png | Bin .../3-simulating-devices-coap.md | 2 +- .../zephyr-device-sdk/light-db-stream/README.md | 2 +- .../light-db-stream/guide-lightdb-stream.md | 2 +- docs/firmware/zephyr-device-sdk/logging/README.md | 2 +- docs/landing_page.md | 2 +- docs/reference/2-protocols/1-coap/3-lightdb.md | 4 ++-- .../2-protocols/1-coap/4-lightdb-stream.md | 4 ++-- docs/reference/2-protocols/1-coap/5-logging.md | 4 ++-- docs/reference/2-protocols/1-coap/6-ota.md | 4 ++-- docs/reference/2-protocols/1-coap/7-limits.md | 2 +- docs/reference/4-websocket/3-Endpoints/1-lightdb.md | 2 +- .../4-websocket/3-Endpoints/2-lightdb-stream.md | 2 +- docs/reference/4-websocket/3-Endpoints/3-logging.md | 2 +- docusaurus.config.js | 8 ++++---- package.json | 2 +- sidebars.js | 6 +++--- 111 files changed, 54 insertions(+), 54 deletions(-) rename docs/{cloud => device-management}/1-home.md (83%) rename docs/{cloud => device-management}/1-services/2-lightdb/2-structure-data.md (100%) rename docs/{cloud => device-management}/1-services/2-lightdb/3-read-write-data.md (100%) rename docs/{cloud => device-management}/1-services/2-lightdb/4-simulating-devices.md (100%) rename docs/{cloud => device-management}/1-services/2-lightdb/README.md (98%) rename docs/{cloud => device-management}/1-services/2-lightdb/_category_.yml (100%) rename docs/{cloud => device-management}/1-services/3-logging/2-searching-logs.md (100%) rename docs/{cloud => device-management}/1-services/3-logging/3-sending-logs.md (100%) rename docs/{cloud => device-management}/1-services/3-logging/README.md (97%) rename docs/{cloud => device-management}/1-services/3-logging/_category_.yml (100%) rename docs/{cloud => device-management}/1-services/4-lightdb-stream/2-sending-data.md (100%) rename docs/{cloud => device-management}/1-services/4-lightdb-stream/3-querying-data.md (100%) rename docs/{cloud => device-management}/1-services/4-lightdb-stream/README.md (96%) rename docs/{cloud => device-management}/1-services/4-lightdb-stream/_category_.yml (100%) rename docs/{cloud => device-management}/1-services/5-ota/2-uploading-artifacts.md (100%) rename docs/{cloud => device-management}/1-services/5-ota/3-release-firmware-update.md (100%) rename docs/{cloud => device-management}/1-services/5-ota/README.md (98%) rename docs/{cloud => device-management}/1-services/5-ota/_category_.yml (100%) rename docs/{cloud => device-management}/1-services/5-ota/assets/artifact-list.png (100%) rename docs/{cloud => device-management}/1-services/5-ota/assets/release-list.png (100%) rename docs/{cloud => device-management}/1-services/5-ota/assets/release-no-tags.png (100%) rename docs/{cloud => device-management}/1-services/6-settings/1-settings-structure.md (100%) rename docs/{cloud => device-management}/1-services/6-settings/2-console-settings.md (100%) rename docs/{cloud => device-management}/1-services/6-settings/README.md (98%) rename docs/{cloud => device-management}/1-services/6-settings/_category_.yml (100%) rename docs/{cloud => device-management}/1-services/6-settings/assets/blueprint-listing.png (100%) rename docs/{cloud => device-management}/1-services/6-settings/assets/create-setting-modal.png (100%) rename docs/{cloud => device-management}/1-services/6-settings/assets/device-settings-main-page.png (100%) rename docs/{cloud => device-management}/1-services/6-settings/assets/device-settings-tab.png (100%) rename docs/{cloud => device-management}/1-services/6-settings/assets/listing-blueprint-level-settings.png (100%) rename docs/{cloud => device-management}/1-services/6-settings/assets/listing-device-level-settings.png (100%) rename docs/{cloud => device-management}/1-services/6-settings/assets/listing-overrided-rpm-setting-dvc-lvl.png (100%) rename docs/{cloud => device-management}/1-services/6-settings/assets/listing-project-level-settings.png (100%) rename docs/{cloud => device-management}/1-services/6-settings/assets/overrides-hierarchy.png (100%) rename docs/{cloud => device-management}/1-services/6-settings/assets/sync-status.png (100%) rename docs/{cloud => device-management}/1-services/README.md (93%) rename docs/{cloud => device-management}/1-services/_category_.yml (100%) rename docs/{cloud => device-management}/2-output-streams/1-mongo/README.md (99%) rename docs/{cloud => device-management}/2-output-streams/1-mongo/_category_.yml (100%) rename docs/{cloud => device-management}/2-output-streams/1-mongo/assets/add-ip-address.png (100%) rename docs/{cloud => device-management}/2-output-streams/1-mongo/assets/atlas-connect-button.png (100%) rename docs/{cloud => device-management}/2-output-streams/1-mongo/assets/atlas-connection-string.png (100%) rename docs/{cloud => device-management}/2-output-streams/1-mongo/assets/atlas-network-access.png (100%) rename docs/{cloud => device-management}/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png (100%) rename docs/{cloud => device-management}/2-output-streams/1-mongo/assets/create-collection-button.png (100%) rename docs/{cloud => device-management}/2-output-streams/1-mongo/assets/create-collection-form.png (100%) rename docs/{cloud => device-management}/2-output-streams/1-mongo/assets/create-outputstream-form.png (100%) rename docs/{cloud => device-management}/2-output-streams/1-mongo/assets/ip-access-list-entry.png (100%) rename docs/{cloud => device-management}/2-output-streams/1-mongo/assets/select-outputstream.png (100%) rename docs/{cloud => device-management}/2-output-streams/1-mongo/assets/timefield-metafield-form.png (100%) rename docs/{cloud => device-management}/2-output-streams/2-webhook/README.md (80%) rename docs/{cloud => device-management}/2-output-streams/2-webhook/_category_.yml (100%) rename docs/{cloud => device-management}/2-output-streams/3-azure-event-hub/README.md (87%) rename docs/{cloud => device-management}/2-output-streams/3-azure-event-hub/_category_.yml (100%) rename docs/{cloud => device-management}/2-output-streams/4-aws-sqs/README.md (88%) rename docs/{cloud => device-management}/2-output-streams/4-aws-sqs/_category_.yml (100%) rename docs/{cloud => device-management}/2-output-streams/4-aws-sqs/assets/msg-body.png (100%) rename docs/{cloud => device-management}/2-output-streams/4-aws-sqs/assets/msg-header.png (100%) rename docs/{cloud => device-management}/2-output-streams/5-gcp-pubsub/README.md (96%) rename docs/{cloud => device-management}/2-output-streams/5-gcp-pubsub/_category_.yml (100%) rename docs/{cloud => device-management}/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png (100%) rename docs/{cloud => device-management}/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png (100%) rename docs/{cloud => device-management}/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png (100%) rename docs/{cloud => device-management}/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png (100%) rename docs/{cloud => device-management}/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png (100%) rename docs/{cloud => device-management}/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png (100%) rename docs/{cloud => device-management}/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png (100%) rename docs/{cloud => device-management}/2-output-streams/6-datacake/README.md (95%) rename docs/{cloud => device-management}/2-output-streams/6-datacake/_category_.yml (100%) rename docs/{cloud => device-management}/2-output-streams/7-ubidots/README.md (95%) rename docs/{cloud => device-management}/2-output-streams/7-ubidots/_category_.yml (100%) rename docs/{cloud => device-management}/2-output-streams/8-influx/README.md (99%) rename docs/{cloud => device-management}/2-output-streams/8-influx/_category_.yml (100%) rename docs/{cloud => device-management}/2-output-streams/8-influx/assets/2023-07-20_15-37.png (100%) rename docs/{cloud => device-management}/2-output-streams/8-influx/assets/buckets.png (100%) rename docs/{cloud => device-management}/2-output-streams/8-influx/assets/cluster-url.png (100%) rename docs/{cloud => device-management}/2-output-streams/8-influx/assets/create-outputstream-form.png (100%) rename docs/{cloud => device-management}/2-output-streams/8-influx/assets/generate-token-button.png (100%) rename docs/{cloud => device-management}/2-output-streams/8-influx/assets/generate-token.png (100%) rename docs/{cloud => device-management}/2-output-streams/8-influx/assets/load-data-menu.png (100%) rename docs/{cloud => device-management}/2-output-streams/8-influx/assets/org-settings-menu.png (100%) rename docs/{cloud => device-management}/2-output-streams/8-influx/assets/select-outputstream.png (100%) rename docs/{cloud => device-management}/2-output-streams/8-influx/assets/token-create-form.png (100%) rename docs/{cloud => device-management}/2-output-streams/9-event-types/2-events.mdx (100%) rename docs/{cloud => device-management}/2-output-streams/9-event-types/README.md (88%) rename docs/{cloud => device-management}/2-output-streams/9-event-types/_category_.yml (100%) rename docs/{cloud => device-management}/2-output-streams/README.md (82%) rename docs/{cloud => device-management}/2-output-streams/_category_.yml (100%) rename docs/{cloud => device-management}/2-output-streams/messages.json (100%) rename docs/{cloud => device-management}/assets/golioth-pricing-snip.png (100%) rename docs/{cloud => device-management}/assets/output-streams_azure-event-hub-connect.png (100%) rename docs/{cloud => device-management}/assets/output-streams_azure-event-hub-send-policy.png (100%) rename docs/{cloud => device-management}/assets/output-streams_azure-event-hub-shared-access.png (100%) diff --git a/docs/concepts/3-device_services.md b/docs/concepts/3-device_services.md index 52c7da01..c62ce179 100644 --- a/docs/concepts/3-device_services.md +++ b/docs/concepts/3-device_services.md @@ -5,7 +5,7 @@ title: Device Services ## Overview -This is the Device Services page. The details around individual device services Goioth offers are in the [Platform](/cloud/services/) section of the docs. +This is the Device Services page. The details around individual device services Goioth offers are in the [Platform](/device-management/services/) section of the docs. ## Terminology diff --git a/docs/concepts/4-device_sdks.md b/docs/concepts/4-device_sdks.md index e6c8a612..ef0def60 100644 --- a/docs/concepts/4-device_sdks.md +++ b/docs/concepts/4-device_sdks.md @@ -5,7 +5,7 @@ title: Device SDKs ## Overview -This is the Device SDKs page. The details around individual device services Goioth offers are in the [Platform](/cloud/services/) section of the docs. +This is the Device SDKs page. The details around individual device services Goioth offers are in the [Platform](/device-management/services/) section of the docs. ## Terminology diff --git a/docs/cloud/1-home.md b/docs/device-management/1-home.md similarity index 83% rename from docs/cloud/1-home.md rename to docs/device-management/1-home.md index f2776115..e79308cd 100644 --- a/docs/cloud/1-home.md +++ b/docs/device-management/1-home.md @@ -1,8 +1,8 @@ --- id: overview -title: Cloud +title: Device Management hide_title: true -slug: /cloud +slug: /device-management --- ## What is the Golioth Cloud? diff --git a/docs/cloud/1-services/2-lightdb/2-structure-data.md b/docs/device-management/1-services/2-lightdb/2-structure-data.md similarity index 100% rename from docs/cloud/1-services/2-lightdb/2-structure-data.md rename to docs/device-management/1-services/2-lightdb/2-structure-data.md diff --git a/docs/cloud/1-services/2-lightdb/3-read-write-data.md b/docs/device-management/1-services/2-lightdb/3-read-write-data.md similarity index 100% rename from docs/cloud/1-services/2-lightdb/3-read-write-data.md rename to docs/device-management/1-services/2-lightdb/3-read-write-data.md diff --git a/docs/cloud/1-services/2-lightdb/4-simulating-devices.md b/docs/device-management/1-services/2-lightdb/4-simulating-devices.md similarity index 100% rename from docs/cloud/1-services/2-lightdb/4-simulating-devices.md rename to docs/device-management/1-services/2-lightdb/4-simulating-devices.md diff --git a/docs/cloud/1-services/2-lightdb/README.md b/docs/device-management/1-services/2-lightdb/README.md similarity index 98% rename from docs/cloud/1-services/2-lightdb/README.md rename to docs/device-management/1-services/2-lightdb/README.md index ff8de505..53275ec6 100644 --- a/docs/cloud/1-services/2-lightdb/README.md +++ b/docs/device-management/1-services/2-lightdb/README.md @@ -1,7 +1,7 @@ --- id: overview title: LightDB Overview -slug: /cloud/services/lightdb +slug: /device-management/services/lightdb --- ## What is LightDB? diff --git a/docs/cloud/1-services/2-lightdb/_category_.yml b/docs/device-management/1-services/2-lightdb/_category_.yml similarity index 100% rename from docs/cloud/1-services/2-lightdb/_category_.yml rename to docs/device-management/1-services/2-lightdb/_category_.yml diff --git a/docs/cloud/1-services/3-logging/2-searching-logs.md b/docs/device-management/1-services/3-logging/2-searching-logs.md similarity index 100% rename from docs/cloud/1-services/3-logging/2-searching-logs.md rename to docs/device-management/1-services/3-logging/2-searching-logs.md diff --git a/docs/cloud/1-services/3-logging/3-sending-logs.md b/docs/device-management/1-services/3-logging/3-sending-logs.md similarity index 100% rename from docs/cloud/1-services/3-logging/3-sending-logs.md rename to docs/device-management/1-services/3-logging/3-sending-logs.md diff --git a/docs/cloud/1-services/3-logging/README.md b/docs/device-management/1-services/3-logging/README.md similarity index 97% rename from docs/cloud/1-services/3-logging/README.md rename to docs/device-management/1-services/3-logging/README.md index d4fdd00f..23010178 100644 --- a/docs/cloud/1-services/3-logging/README.md +++ b/docs/device-management/1-services/3-logging/README.md @@ -1,7 +1,7 @@ --- id: overview title: Logging Overview -slug: /cloud/services/logging +slug: /device-management/services/logging --- ## What is Logging diff --git a/docs/cloud/1-services/3-logging/_category_.yml b/docs/device-management/1-services/3-logging/_category_.yml similarity index 100% rename from docs/cloud/1-services/3-logging/_category_.yml rename to docs/device-management/1-services/3-logging/_category_.yml diff --git a/docs/cloud/1-services/4-lightdb-stream/2-sending-data.md b/docs/device-management/1-services/4-lightdb-stream/2-sending-data.md similarity index 100% rename from docs/cloud/1-services/4-lightdb-stream/2-sending-data.md rename to docs/device-management/1-services/4-lightdb-stream/2-sending-data.md diff --git a/docs/cloud/1-services/4-lightdb-stream/3-querying-data.md b/docs/device-management/1-services/4-lightdb-stream/3-querying-data.md similarity index 100% rename from docs/cloud/1-services/4-lightdb-stream/3-querying-data.md rename to docs/device-management/1-services/4-lightdb-stream/3-querying-data.md diff --git a/docs/cloud/1-services/4-lightdb-stream/README.md b/docs/device-management/1-services/4-lightdb-stream/README.md similarity index 96% rename from docs/cloud/1-services/4-lightdb-stream/README.md rename to docs/device-management/1-services/4-lightdb-stream/README.md index 440d9108..3c8e77a5 100644 --- a/docs/cloud/1-services/4-lightdb-stream/README.md +++ b/docs/device-management/1-services/4-lightdb-stream/README.md @@ -1,7 +1,7 @@ --- id: overview title: LightDB Stream Overview -slug: /cloud/services/lightdb-stream +slug: /device-management/services/lightdb-stream --- ## What is LightDB Stream? diff --git a/docs/cloud/1-services/4-lightdb-stream/_category_.yml b/docs/device-management/1-services/4-lightdb-stream/_category_.yml similarity index 100% rename from docs/cloud/1-services/4-lightdb-stream/_category_.yml rename to docs/device-management/1-services/4-lightdb-stream/_category_.yml diff --git a/docs/cloud/1-services/5-ota/2-uploading-artifacts.md b/docs/device-management/1-services/5-ota/2-uploading-artifacts.md similarity index 100% rename from docs/cloud/1-services/5-ota/2-uploading-artifacts.md rename to docs/device-management/1-services/5-ota/2-uploading-artifacts.md diff --git a/docs/cloud/1-services/5-ota/3-release-firmware-update.md b/docs/device-management/1-services/5-ota/3-release-firmware-update.md similarity index 100% rename from docs/cloud/1-services/5-ota/3-release-firmware-update.md rename to docs/device-management/1-services/5-ota/3-release-firmware-update.md diff --git a/docs/cloud/1-services/5-ota/README.md b/docs/device-management/1-services/5-ota/README.md similarity index 98% rename from docs/cloud/1-services/5-ota/README.md rename to docs/device-management/1-services/5-ota/README.md index ceaaa4f6..e9aa93e1 100644 --- a/docs/cloud/1-services/5-ota/README.md +++ b/docs/device-management/1-services/5-ota/README.md @@ -1,7 +1,7 @@ --- id: overview title: Over-the-Air (OTA) Updates Overview -slug: /cloud/services/ota +slug: /device-management/services/ota --- Golioth Device Firmware Update (DFU) enables quick, secure deployment of firmware packages to IoT devices throughout the world. The Golioth Web Console enables easy management of firmware releases, including multi-part binary bundles, enabling updates for devices as diverse as smart speakers, digital signage, machine learning enabled sensor systems, multiple processor embedded devices, and more. diff --git a/docs/cloud/1-services/5-ota/_category_.yml b/docs/device-management/1-services/5-ota/_category_.yml similarity index 100% rename from docs/cloud/1-services/5-ota/_category_.yml rename to docs/device-management/1-services/5-ota/_category_.yml diff --git a/docs/cloud/1-services/5-ota/assets/artifact-list.png b/docs/device-management/1-services/5-ota/assets/artifact-list.png similarity index 100% rename from docs/cloud/1-services/5-ota/assets/artifact-list.png rename to docs/device-management/1-services/5-ota/assets/artifact-list.png diff --git a/docs/cloud/1-services/5-ota/assets/release-list.png b/docs/device-management/1-services/5-ota/assets/release-list.png similarity index 100% rename from docs/cloud/1-services/5-ota/assets/release-list.png rename to docs/device-management/1-services/5-ota/assets/release-list.png diff --git a/docs/cloud/1-services/5-ota/assets/release-no-tags.png b/docs/device-management/1-services/5-ota/assets/release-no-tags.png similarity index 100% rename from docs/cloud/1-services/5-ota/assets/release-no-tags.png rename to docs/device-management/1-services/5-ota/assets/release-no-tags.png diff --git a/docs/cloud/1-services/6-settings/1-settings-structure.md b/docs/device-management/1-services/6-settings/1-settings-structure.md similarity index 100% rename from docs/cloud/1-services/6-settings/1-settings-structure.md rename to docs/device-management/1-services/6-settings/1-settings-structure.md diff --git a/docs/cloud/1-services/6-settings/2-console-settings.md b/docs/device-management/1-services/6-settings/2-console-settings.md similarity index 100% rename from docs/cloud/1-services/6-settings/2-console-settings.md rename to docs/device-management/1-services/6-settings/2-console-settings.md diff --git a/docs/cloud/1-services/6-settings/README.md b/docs/device-management/1-services/6-settings/README.md similarity index 98% rename from docs/cloud/1-services/6-settings/README.md rename to docs/device-management/1-services/6-settings/README.md index 948c76fe..415e99d3 100644 --- a/docs/cloud/1-services/6-settings/README.md +++ b/docs/device-management/1-services/6-settings/README.md @@ -1,7 +1,7 @@ --- id: overview title: Settings Overview -slug: /cloud/services/settings +slug: /device-management/services/settings --- ## What is the Settings Service? diff --git a/docs/cloud/1-services/6-settings/_category_.yml b/docs/device-management/1-services/6-settings/_category_.yml similarity index 100% rename from docs/cloud/1-services/6-settings/_category_.yml rename to docs/device-management/1-services/6-settings/_category_.yml diff --git a/docs/cloud/1-services/6-settings/assets/blueprint-listing.png b/docs/device-management/1-services/6-settings/assets/blueprint-listing.png similarity index 100% rename from docs/cloud/1-services/6-settings/assets/blueprint-listing.png rename to docs/device-management/1-services/6-settings/assets/blueprint-listing.png diff --git a/docs/cloud/1-services/6-settings/assets/create-setting-modal.png b/docs/device-management/1-services/6-settings/assets/create-setting-modal.png similarity index 100% rename from docs/cloud/1-services/6-settings/assets/create-setting-modal.png rename to docs/device-management/1-services/6-settings/assets/create-setting-modal.png diff --git a/docs/cloud/1-services/6-settings/assets/device-settings-main-page.png b/docs/device-management/1-services/6-settings/assets/device-settings-main-page.png similarity index 100% rename from docs/cloud/1-services/6-settings/assets/device-settings-main-page.png rename to docs/device-management/1-services/6-settings/assets/device-settings-main-page.png diff --git a/docs/cloud/1-services/6-settings/assets/device-settings-tab.png b/docs/device-management/1-services/6-settings/assets/device-settings-tab.png similarity index 100% rename from docs/cloud/1-services/6-settings/assets/device-settings-tab.png rename to docs/device-management/1-services/6-settings/assets/device-settings-tab.png diff --git a/docs/cloud/1-services/6-settings/assets/listing-blueprint-level-settings.png b/docs/device-management/1-services/6-settings/assets/listing-blueprint-level-settings.png similarity index 100% rename from docs/cloud/1-services/6-settings/assets/listing-blueprint-level-settings.png rename to docs/device-management/1-services/6-settings/assets/listing-blueprint-level-settings.png diff --git a/docs/cloud/1-services/6-settings/assets/listing-device-level-settings.png b/docs/device-management/1-services/6-settings/assets/listing-device-level-settings.png similarity index 100% rename from docs/cloud/1-services/6-settings/assets/listing-device-level-settings.png rename to docs/device-management/1-services/6-settings/assets/listing-device-level-settings.png diff --git a/docs/cloud/1-services/6-settings/assets/listing-overrided-rpm-setting-dvc-lvl.png b/docs/device-management/1-services/6-settings/assets/listing-overrided-rpm-setting-dvc-lvl.png similarity index 100% rename from docs/cloud/1-services/6-settings/assets/listing-overrided-rpm-setting-dvc-lvl.png rename to docs/device-management/1-services/6-settings/assets/listing-overrided-rpm-setting-dvc-lvl.png diff --git a/docs/cloud/1-services/6-settings/assets/listing-project-level-settings.png b/docs/device-management/1-services/6-settings/assets/listing-project-level-settings.png similarity index 100% rename from docs/cloud/1-services/6-settings/assets/listing-project-level-settings.png rename to docs/device-management/1-services/6-settings/assets/listing-project-level-settings.png diff --git a/docs/cloud/1-services/6-settings/assets/overrides-hierarchy.png b/docs/device-management/1-services/6-settings/assets/overrides-hierarchy.png similarity index 100% rename from docs/cloud/1-services/6-settings/assets/overrides-hierarchy.png rename to docs/device-management/1-services/6-settings/assets/overrides-hierarchy.png diff --git a/docs/cloud/1-services/6-settings/assets/sync-status.png b/docs/device-management/1-services/6-settings/assets/sync-status.png similarity index 100% rename from docs/cloud/1-services/6-settings/assets/sync-status.png rename to docs/device-management/1-services/6-settings/assets/sync-status.png diff --git a/docs/cloud/1-services/README.md b/docs/device-management/1-services/README.md similarity index 93% rename from docs/cloud/1-services/README.md rename to docs/device-management/1-services/README.md index deafa32e..1fa542ac 100644 --- a/docs/cloud/1-services/README.md +++ b/docs/device-management/1-services/README.md @@ -1,7 +1,7 @@ --- id: overview title: Services Overview -slug: /cloud/services +slug: /device-management/services --- Device Services are the features that Golioth delivers to connected embedded devices (such as a product based on the [ESP32](/hardware/esp32) or [nRF91](/hardware/nrf91)). Services, and the content of this section of the documentation, will revolve around implementing the service and more importantly, using tools like [goliothctl](/reference/command-line-tools/goliothctl/goliothctl/) and [coap](/reference/command-line-tools/coap/coap/) to test diff --git a/docs/cloud/1-services/_category_.yml b/docs/device-management/1-services/_category_.yml similarity index 100% rename from docs/cloud/1-services/_category_.yml rename to docs/device-management/1-services/_category_.yml diff --git a/docs/cloud/2-output-streams/1-mongo/README.md b/docs/device-management/2-output-streams/1-mongo/README.md similarity index 99% rename from docs/cloud/2-output-streams/1-mongo/README.md rename to docs/device-management/2-output-streams/1-mongo/README.md index a1e370b6..d5203b03 100644 --- a/docs/cloud/2-output-streams/1-mongo/README.md +++ b/docs/device-management/2-output-streams/1-mongo/README.md @@ -1,7 +1,7 @@ --- id: overview title: MongoDB Overview -slug: /cloud/output-streams/mongodb-timeseries +slug: /device-management/output-streams/mongodb-timeseries --- [MongoDB](https://www.mongodb.com/) is a document database and has diff --git a/docs/cloud/2-output-streams/1-mongo/_category_.yml b/docs/device-management/2-output-streams/1-mongo/_category_.yml similarity index 100% rename from docs/cloud/2-output-streams/1-mongo/_category_.yml rename to docs/device-management/2-output-streams/1-mongo/_category_.yml diff --git a/docs/cloud/2-output-streams/1-mongo/assets/add-ip-address.png b/docs/device-management/2-output-streams/1-mongo/assets/add-ip-address.png similarity index 100% rename from docs/cloud/2-output-streams/1-mongo/assets/add-ip-address.png rename to docs/device-management/2-output-streams/1-mongo/assets/add-ip-address.png diff --git a/docs/cloud/2-output-streams/1-mongo/assets/atlas-connect-button.png b/docs/device-management/2-output-streams/1-mongo/assets/atlas-connect-button.png similarity index 100% rename from docs/cloud/2-output-streams/1-mongo/assets/atlas-connect-button.png rename to docs/device-management/2-output-streams/1-mongo/assets/atlas-connect-button.png diff --git a/docs/cloud/2-output-streams/1-mongo/assets/atlas-connection-string.png b/docs/device-management/2-output-streams/1-mongo/assets/atlas-connection-string.png similarity index 100% rename from docs/cloud/2-output-streams/1-mongo/assets/atlas-connection-string.png rename to docs/device-management/2-output-streams/1-mongo/assets/atlas-connection-string.png diff --git a/docs/cloud/2-output-streams/1-mongo/assets/atlas-network-access.png b/docs/device-management/2-output-streams/1-mongo/assets/atlas-network-access.png similarity index 100% rename from docs/cloud/2-output-streams/1-mongo/assets/atlas-network-access.png rename to docs/device-management/2-output-streams/1-mongo/assets/atlas-network-access.png diff --git a/docs/cloud/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png b/docs/device-management/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png similarity index 100% rename from docs/cloud/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png rename to docs/device-management/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png diff --git a/docs/cloud/2-output-streams/1-mongo/assets/create-collection-button.png b/docs/device-management/2-output-streams/1-mongo/assets/create-collection-button.png similarity index 100% rename from docs/cloud/2-output-streams/1-mongo/assets/create-collection-button.png rename to docs/device-management/2-output-streams/1-mongo/assets/create-collection-button.png diff --git a/docs/cloud/2-output-streams/1-mongo/assets/create-collection-form.png b/docs/device-management/2-output-streams/1-mongo/assets/create-collection-form.png similarity index 100% rename from docs/cloud/2-output-streams/1-mongo/assets/create-collection-form.png rename to docs/device-management/2-output-streams/1-mongo/assets/create-collection-form.png diff --git a/docs/cloud/2-output-streams/1-mongo/assets/create-outputstream-form.png b/docs/device-management/2-output-streams/1-mongo/assets/create-outputstream-form.png similarity index 100% rename from docs/cloud/2-output-streams/1-mongo/assets/create-outputstream-form.png rename to docs/device-management/2-output-streams/1-mongo/assets/create-outputstream-form.png diff --git a/docs/cloud/2-output-streams/1-mongo/assets/ip-access-list-entry.png b/docs/device-management/2-output-streams/1-mongo/assets/ip-access-list-entry.png similarity index 100% rename from docs/cloud/2-output-streams/1-mongo/assets/ip-access-list-entry.png rename to docs/device-management/2-output-streams/1-mongo/assets/ip-access-list-entry.png diff --git a/docs/cloud/2-output-streams/1-mongo/assets/select-outputstream.png b/docs/device-management/2-output-streams/1-mongo/assets/select-outputstream.png similarity index 100% rename from docs/cloud/2-output-streams/1-mongo/assets/select-outputstream.png rename to docs/device-management/2-output-streams/1-mongo/assets/select-outputstream.png diff --git a/docs/cloud/2-output-streams/1-mongo/assets/timefield-metafield-form.png b/docs/device-management/2-output-streams/1-mongo/assets/timefield-metafield-form.png similarity index 100% rename from docs/cloud/2-output-streams/1-mongo/assets/timefield-metafield-form.png rename to docs/device-management/2-output-streams/1-mongo/assets/timefield-metafield-form.png diff --git a/docs/cloud/2-output-streams/2-webhook/README.md b/docs/device-management/2-output-streams/2-webhook/README.md similarity index 80% rename from docs/cloud/2-output-streams/2-webhook/README.md rename to docs/device-management/2-output-streams/2-webhook/README.md index 34a4abec..0bd5f08d 100644 --- a/docs/cloud/2-output-streams/2-webhook/README.md +++ b/docs/device-management/2-output-streams/2-webhook/README.md @@ -1,7 +1,7 @@ --- id: overview title: Webhooks Overview -slug: /cloud/output-streams/webhook +slug: /device-management/output-streams/webhook --- Webhooks are a simple and flexible way to receive events from the Golioth platform using HTTP. It is really easy to build a web server to receive these events and you can write you own logic to process them. @@ -17,9 +17,9 @@ For each Output Stream type, there is a set of specify attributes. Here are the ### Example -As mentioned on [Output Streams Overview](/cloud/output-streams), events are sent using the [Cloud Events](https://cloudevents.io) format. For Webhooks specifically, some metadata of the event are sent as HTTP headers. +As mentioned on [Output Streams Overview](/device-management/output-streams), events are sent using the [Cloud Events](https://cloudevents.io) format. For Webhooks specifically, some metadata of the event are sent as HTTP headers. -Here is an example of an event arriving on a webhook. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/cloud/output-streams/event-types/events)). +Here is an example of an event arriving on a webhook. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/device-management/output-streams/event-types/events)). ``` POST {your-uri-path} HTTP/1.1 diff --git a/docs/cloud/2-output-streams/2-webhook/_category_.yml b/docs/device-management/2-output-streams/2-webhook/_category_.yml similarity index 100% rename from docs/cloud/2-output-streams/2-webhook/_category_.yml rename to docs/device-management/2-output-streams/2-webhook/_category_.yml diff --git a/docs/cloud/2-output-streams/3-azure-event-hub/README.md b/docs/device-management/2-output-streams/3-azure-event-hub/README.md similarity index 87% rename from docs/cloud/2-output-streams/3-azure-event-hub/README.md rename to docs/device-management/2-output-streams/3-azure-event-hub/README.md index 61de3f2d..65750a18 100644 --- a/docs/cloud/2-output-streams/3-azure-event-hub/README.md +++ b/docs/device-management/2-output-streams/3-azure-event-hub/README.md @@ -1,7 +1,7 @@ --- id: overview title: Azure Event Hub Overview -slug: /cloud/output-streams/azure-event-hub +slug: /device-management/output-streams/azure-event-hub --- Azure Event Hub is a fully managed, real-time data ingestion service that can be used to consume Golioth events in a simple, trusted, and scalable way. You can ingest data in multiple ways inside Azure with support for popular protocols, including AMQP, HTTPS, and Apache Kafka. You can also consume Azure Event Hub in a serverless manner using Azure Functions. @@ -33,9 +33,9 @@ To use this integration, you need to create an Event Hub on Azure and get the co ### Example -As mentioned on [Output Streams Overview](/cloud/output-streams), events are sent using [Cloud Events](https://cloudevents.io) format. For Azure Event Hub, some metadata of the event are sent together with the message body. +As mentioned on [Output Streams Overview](/device-management/output-streams), events are sent using [Cloud Events](https://cloudevents.io) format. For Azure Event Hub, some metadata of the event are sent together with the message body. -Here is an example of an event arriving on Event Hub. The payload will be inside a `data` attribute (see event payloads on [Output Streams Event Types](/cloud/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. +Here is an example of an event arriving on Event Hub. The payload will be inside a `data` attribute (see event payloads on [Output Streams Event Types](/device-management/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. ```json { diff --git a/docs/cloud/2-output-streams/3-azure-event-hub/_category_.yml b/docs/device-management/2-output-streams/3-azure-event-hub/_category_.yml similarity index 100% rename from docs/cloud/2-output-streams/3-azure-event-hub/_category_.yml rename to docs/device-management/2-output-streams/3-azure-event-hub/_category_.yml diff --git a/docs/cloud/2-output-streams/4-aws-sqs/README.md b/docs/device-management/2-output-streams/4-aws-sqs/README.md similarity index 88% rename from docs/cloud/2-output-streams/4-aws-sqs/README.md rename to docs/device-management/2-output-streams/4-aws-sqs/README.md index 0ec8c426..af57a112 100644 --- a/docs/cloud/2-output-streams/4-aws-sqs/README.md +++ b/docs/device-management/2-output-streams/4-aws-sqs/README.md @@ -1,7 +1,7 @@ --- id: overview title: AWS SQS Overview -slug: /cloud/output-streams/aws-sqs +slug: /device-management/output-streams/aws-sqs --- Amazon Simple Queue Service (SQS) is a fully managed message queuing service that enables you receive events generated on the Golioth platform that can be processed in a decoupled and scalable way. SQS eliminates the complexity and overhead associated with managing and operating message-oriented middleware systems. Data can be ingested using multiple solutions inside of AWS, including Serverless offerings like AWS Lambda. @@ -55,9 +55,9 @@ To use this integration, you need to create an SQS Queue and and a user with per ### Example -As mentioned on the [Output Streams Overview](/cloud/output-streams), events are sent using the [Cloud Events](https://cloudevents.io) format. For AWS SQS, some metadata of the event are sent together with the message body. +As mentioned on the [Output Streams Overview](/device-management/output-streams), events are sent using the [Cloud Events](https://cloudevents.io) format. For AWS SQS, some metadata of the event are sent together with the message body. -Here is an example of an event arriving on SQS. The payload is going to be inside of a `data` attribute (see event payloads on [Output Streams Event Types](/cloud/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. +Here is an example of an event arriving on SQS. The payload is going to be inside of a `data` attribute (see event payloads on [Output Streams Event Types](/device-management/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. ```json { diff --git a/docs/cloud/2-output-streams/4-aws-sqs/_category_.yml b/docs/device-management/2-output-streams/4-aws-sqs/_category_.yml similarity index 100% rename from docs/cloud/2-output-streams/4-aws-sqs/_category_.yml rename to docs/device-management/2-output-streams/4-aws-sqs/_category_.yml diff --git a/docs/cloud/2-output-streams/4-aws-sqs/assets/msg-body.png b/docs/device-management/2-output-streams/4-aws-sqs/assets/msg-body.png similarity index 100% rename from docs/cloud/2-output-streams/4-aws-sqs/assets/msg-body.png rename to docs/device-management/2-output-streams/4-aws-sqs/assets/msg-body.png diff --git a/docs/cloud/2-output-streams/4-aws-sqs/assets/msg-header.png b/docs/device-management/2-output-streams/4-aws-sqs/assets/msg-header.png similarity index 100% rename from docs/cloud/2-output-streams/4-aws-sqs/assets/msg-header.png rename to docs/device-management/2-output-streams/4-aws-sqs/assets/msg-header.png diff --git a/docs/cloud/2-output-streams/5-gcp-pubsub/README.md b/docs/device-management/2-output-streams/5-gcp-pubsub/README.md similarity index 96% rename from docs/cloud/2-output-streams/5-gcp-pubsub/README.md rename to docs/device-management/2-output-streams/5-gcp-pubsub/README.md index b10e68b6..59122e34 100644 --- a/docs/cloud/2-output-streams/5-gcp-pubsub/README.md +++ b/docs/device-management/2-output-streams/5-gcp-pubsub/README.md @@ -1,7 +1,7 @@ --- id: overview title: Google Cloud Platform (GCP) PubSub Overview -slug: /cloud/output-streams/gcp-pubsub +slug: /device-management/output-streams/gcp-pubsub --- [Google Cloud PubSub](https://cloud.google.com/pubsub/) works as a messaging middleware for traditional service integration or a simple communication medium for modern microservices. Events can be ingested with serverless environments like Cloud Functions, Cloud Run or custom environments on Google Kubernetes Engine or Compute Engine. @@ -108,7 +108,7 @@ Go the [Golioth Platform](https://console.golioth.io), log in and select your Pr Golioth Output Streams use the [Cloud Events](https://cloudevents.io) format. For GCP PubSub, this means some metadata of the event are sent together with the message body. -Here is an example of an event arriving on PubSub. The payload will be inside a `data` attribute (see event payloads on [Output Streams Event Types](/cloud/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. +Here is an example of an event arriving on PubSub. The payload will be inside a `data` attribute (see event payloads on [Output Streams Event Types](/device-management/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. ```json { diff --git a/docs/cloud/2-output-streams/5-gcp-pubsub/_category_.yml b/docs/device-management/2-output-streams/5-gcp-pubsub/_category_.yml similarity index 100% rename from docs/cloud/2-output-streams/5-gcp-pubsub/_category_.yml rename to docs/device-management/2-output-streams/5-gcp-pubsub/_category_.yml diff --git a/docs/cloud/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png b/docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png similarity index 100% rename from docs/cloud/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png rename to docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png diff --git a/docs/cloud/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png b/docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png similarity index 100% rename from docs/cloud/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png rename to docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png diff --git a/docs/cloud/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png b/docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png similarity index 100% rename from docs/cloud/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png rename to docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png diff --git a/docs/cloud/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png b/docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png similarity index 100% rename from docs/cloud/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png rename to docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png diff --git a/docs/cloud/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png b/docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png similarity index 100% rename from docs/cloud/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png rename to docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png diff --git a/docs/cloud/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png b/docs/device-management/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png similarity index 100% rename from docs/cloud/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png rename to docs/device-management/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png diff --git a/docs/cloud/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png b/docs/device-management/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png similarity index 100% rename from docs/cloud/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png rename to docs/device-management/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png diff --git a/docs/cloud/2-output-streams/6-datacake/README.md b/docs/device-management/2-output-streams/6-datacake/README.md similarity index 95% rename from docs/cloud/2-output-streams/6-datacake/README.md rename to docs/device-management/2-output-streams/6-datacake/README.md index 798697e4..1c4e2077 100644 --- a/docs/cloud/2-output-streams/6-datacake/README.md +++ b/docs/device-management/2-output-streams/6-datacake/README.md @@ -1,7 +1,7 @@ --- id: overview title: Datacake Overview -slug: /cloud/output-streams/datacake +slug: /device-management/output-streams/datacake --- [Datacake](https://datacake.co/) is a multi-purpose, low-code IoT platform that requires no programming skills and minimal time to create custom IoT applications that can be brought into a white label IoT solution at the push of a button. @@ -40,7 +40,7 @@ In this tutorial you will see how to: Golioth Output Streams use the [Cloud Events](https://cloudevents.io) format. For Datacake, this means some metadata of the event are sent as HTTP headers. -Here is an example of an event arriving on Datcake. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/cloud/output-streams/event-types/events)). +Here is an example of an event arriving on Datcake. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/device-management/output-streams/event-types/events)). ``` diff --git a/docs/cloud/2-output-streams/6-datacake/_category_.yml b/docs/device-management/2-output-streams/6-datacake/_category_.yml similarity index 100% rename from docs/cloud/2-output-streams/6-datacake/_category_.yml rename to docs/device-management/2-output-streams/6-datacake/_category_.yml diff --git a/docs/cloud/2-output-streams/7-ubidots/README.md b/docs/device-management/2-output-streams/7-ubidots/README.md similarity index 95% rename from docs/cloud/2-output-streams/7-ubidots/README.md rename to docs/device-management/2-output-streams/7-ubidots/README.md index 4f8cfbe7..8042158f 100644 --- a/docs/cloud/2-output-streams/7-ubidots/README.md +++ b/docs/device-management/2-output-streams/7-ubidots/README.md @@ -1,7 +1,7 @@ --- id: overview title: Ubidots Overview -slug: /cloud/output-streams/ubidots +slug: /device-management/output-streams/ubidots --- [Ubidots](https://ubidots.com/) makes it easy to white-label visualizations to produce a @@ -46,7 +46,7 @@ In this tutorial you will see how to: Golioth Output Streams use the [Cloud Events](https://cloudevents.io) format. For Ubidots, this means some metadata of the event are sent as HTTP headers. -Here is an example of an event arriving on Ubidots. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/cloud/output-streams/event-types/events)). +Here is an example of an event arriving on Ubidots. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/device-management/output-streams/event-types/events)). ``` POST {your-uri-path} HTTP/1.1 diff --git a/docs/cloud/2-output-streams/7-ubidots/_category_.yml b/docs/device-management/2-output-streams/7-ubidots/_category_.yml similarity index 100% rename from docs/cloud/2-output-streams/7-ubidots/_category_.yml rename to docs/device-management/2-output-streams/7-ubidots/_category_.yml diff --git a/docs/cloud/2-output-streams/8-influx/README.md b/docs/device-management/2-output-streams/8-influx/README.md similarity index 99% rename from docs/cloud/2-output-streams/8-influx/README.md rename to docs/device-management/2-output-streams/8-influx/README.md index 2fcc53c0..380ca340 100644 --- a/docs/cloud/2-output-streams/8-influx/README.md +++ b/docs/device-management/2-output-streams/8-influx/README.md @@ -1,7 +1,7 @@ --- id: overview title: InfluxDB Overview -slug: /cloud/output-streams/influxdb +slug: /device-management/output-streams/influxdb --- [InfluxDB Cloud](https://www.influxdata.com/products/influxdb-cloud/) is a diff --git a/docs/cloud/2-output-streams/8-influx/_category_.yml b/docs/device-management/2-output-streams/8-influx/_category_.yml similarity index 100% rename from docs/cloud/2-output-streams/8-influx/_category_.yml rename to docs/device-management/2-output-streams/8-influx/_category_.yml diff --git a/docs/cloud/2-output-streams/8-influx/assets/2023-07-20_15-37.png b/docs/device-management/2-output-streams/8-influx/assets/2023-07-20_15-37.png similarity index 100% rename from docs/cloud/2-output-streams/8-influx/assets/2023-07-20_15-37.png rename to docs/device-management/2-output-streams/8-influx/assets/2023-07-20_15-37.png diff --git a/docs/cloud/2-output-streams/8-influx/assets/buckets.png b/docs/device-management/2-output-streams/8-influx/assets/buckets.png similarity index 100% rename from docs/cloud/2-output-streams/8-influx/assets/buckets.png rename to docs/device-management/2-output-streams/8-influx/assets/buckets.png diff --git a/docs/cloud/2-output-streams/8-influx/assets/cluster-url.png b/docs/device-management/2-output-streams/8-influx/assets/cluster-url.png similarity index 100% rename from docs/cloud/2-output-streams/8-influx/assets/cluster-url.png rename to docs/device-management/2-output-streams/8-influx/assets/cluster-url.png diff --git a/docs/cloud/2-output-streams/8-influx/assets/create-outputstream-form.png b/docs/device-management/2-output-streams/8-influx/assets/create-outputstream-form.png similarity index 100% rename from docs/cloud/2-output-streams/8-influx/assets/create-outputstream-form.png rename to docs/device-management/2-output-streams/8-influx/assets/create-outputstream-form.png diff --git a/docs/cloud/2-output-streams/8-influx/assets/generate-token-button.png b/docs/device-management/2-output-streams/8-influx/assets/generate-token-button.png similarity index 100% rename from docs/cloud/2-output-streams/8-influx/assets/generate-token-button.png rename to docs/device-management/2-output-streams/8-influx/assets/generate-token-button.png diff --git a/docs/cloud/2-output-streams/8-influx/assets/generate-token.png b/docs/device-management/2-output-streams/8-influx/assets/generate-token.png similarity index 100% rename from docs/cloud/2-output-streams/8-influx/assets/generate-token.png rename to docs/device-management/2-output-streams/8-influx/assets/generate-token.png diff --git a/docs/cloud/2-output-streams/8-influx/assets/load-data-menu.png b/docs/device-management/2-output-streams/8-influx/assets/load-data-menu.png similarity index 100% rename from docs/cloud/2-output-streams/8-influx/assets/load-data-menu.png rename to docs/device-management/2-output-streams/8-influx/assets/load-data-menu.png diff --git a/docs/cloud/2-output-streams/8-influx/assets/org-settings-menu.png b/docs/device-management/2-output-streams/8-influx/assets/org-settings-menu.png similarity index 100% rename from docs/cloud/2-output-streams/8-influx/assets/org-settings-menu.png rename to docs/device-management/2-output-streams/8-influx/assets/org-settings-menu.png diff --git a/docs/cloud/2-output-streams/8-influx/assets/select-outputstream.png b/docs/device-management/2-output-streams/8-influx/assets/select-outputstream.png similarity index 100% rename from docs/cloud/2-output-streams/8-influx/assets/select-outputstream.png rename to docs/device-management/2-output-streams/8-influx/assets/select-outputstream.png diff --git a/docs/cloud/2-output-streams/8-influx/assets/token-create-form.png b/docs/device-management/2-output-streams/8-influx/assets/token-create-form.png similarity index 100% rename from docs/cloud/2-output-streams/8-influx/assets/token-create-form.png rename to docs/device-management/2-output-streams/8-influx/assets/token-create-form.png diff --git a/docs/cloud/2-output-streams/9-event-types/2-events.mdx b/docs/device-management/2-output-streams/9-event-types/2-events.mdx similarity index 100% rename from docs/cloud/2-output-streams/9-event-types/2-events.mdx rename to docs/device-management/2-output-streams/9-event-types/2-events.mdx diff --git a/docs/cloud/2-output-streams/9-event-types/README.md b/docs/device-management/2-output-streams/9-event-types/README.md similarity index 88% rename from docs/cloud/2-output-streams/9-event-types/README.md rename to docs/device-management/2-output-streams/9-event-types/README.md index 8bfffbd7..5cb72498 100644 --- a/docs/cloud/2-output-streams/9-event-types/README.md +++ b/docs/device-management/2-output-streams/9-event-types/README.md @@ -1,7 +1,7 @@ --- id: overview title: Event Types Overview -slug: /cloud/output-streams/event-types +slug: /device-management/output-streams/event-types --- The Golioth platform uses Cloud Events to communicate between services internally. With the Output Stream feature, we are making some of those events available for users to consume for use in their own applications. diff --git a/docs/cloud/2-output-streams/9-event-types/_category_.yml b/docs/device-management/2-output-streams/9-event-types/_category_.yml similarity index 100% rename from docs/cloud/2-output-streams/9-event-types/_category_.yml rename to docs/device-management/2-output-streams/9-event-types/_category_.yml diff --git a/docs/cloud/2-output-streams/README.md b/docs/device-management/2-output-streams/README.md similarity index 82% rename from docs/cloud/2-output-streams/README.md rename to docs/device-management/2-output-streams/README.md index e0ccb233..377e852c 100644 --- a/docs/cloud/2-output-streams/README.md +++ b/docs/device-management/2-output-streams/README.md @@ -1,7 +1,7 @@ --- id: overview title: Output Streams Overview -slug: /cloud/output-streams +slug: /device-management/output-streams --- Output Streams are a feature of the Golioth platform that allows users to integrate their data seamlessly with a number of external services. diff --git a/docs/cloud/2-output-streams/_category_.yml b/docs/device-management/2-output-streams/_category_.yml similarity index 100% rename from docs/cloud/2-output-streams/_category_.yml rename to docs/device-management/2-output-streams/_category_.yml diff --git a/docs/cloud/2-output-streams/messages.json b/docs/device-management/2-output-streams/messages.json similarity index 100% rename from docs/cloud/2-output-streams/messages.json rename to docs/device-management/2-output-streams/messages.json diff --git a/docs/cloud/assets/golioth-pricing-snip.png b/docs/device-management/assets/golioth-pricing-snip.png similarity index 100% rename from docs/cloud/assets/golioth-pricing-snip.png rename to docs/device-management/assets/golioth-pricing-snip.png diff --git a/docs/cloud/assets/output-streams_azure-event-hub-connect.png b/docs/device-management/assets/output-streams_azure-event-hub-connect.png similarity index 100% rename from docs/cloud/assets/output-streams_azure-event-hub-connect.png rename to docs/device-management/assets/output-streams_azure-event-hub-connect.png diff --git a/docs/cloud/assets/output-streams_azure-event-hub-send-policy.png b/docs/device-management/assets/output-streams_azure-event-hub-send-policy.png similarity index 100% rename from docs/cloud/assets/output-streams_azure-event-hub-send-policy.png rename to docs/device-management/assets/output-streams_azure-event-hub-send-policy.png diff --git a/docs/cloud/assets/output-streams_azure-event-hub-shared-access.png b/docs/device-management/assets/output-streams_azure-event-hub-shared-access.png similarity index 100% rename from docs/cloud/assets/output-streams_azure-event-hub-shared-access.png rename to docs/device-management/assets/output-streams_azure-event-hub-shared-access.png diff --git a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md index 318d6cc6..581f52ab 100644 --- a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md +++ b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md @@ -119,4 +119,4 @@ testing. We recommend using `coap` when first working on LightDB data storage and retrieval. The interactive nature makes it easy to test your schema before moving to embedded devices. -Examples of using `coap` with LightDB are [found in the Cloud documentation](/cloud/services/lightdb/read-write-data). +Examples of using `coap` with LightDB are [found in the Cloud documentation](/device-management/services/lightdb/read-write-data). diff --git a/docs/firmware/zephyr-device-sdk/light-db-stream/README.md b/docs/firmware/zephyr-device-sdk/light-db-stream/README.md index bce497a5..b037b42c 100644 --- a/docs/firmware/zephyr-device-sdk/light-db-stream/README.md +++ b/docs/firmware/zephyr-device-sdk/light-db-stream/README.md @@ -7,4 +7,4 @@ LightDB Stream is a persistent database service hosted by Golioth. The LightDB S ![Console](../assets/lightDB-stream-svg-a4.svg) -Checkout the [LightDB Stream](https://docs.golioth.io/cloud/services/lightdb-stream/) guide for a walkthrough of the sample demonstrating the firmware calls used to interact with the Golioth LightDB Stream service. \ No newline at end of file +Checkout the [LightDB Stream](https://docs.golioth.io/device-management/services/lightdb-stream/) guide for a walkthrough of the sample demonstrating the firmware calls used to interact with the Golioth LightDB Stream service. diff --git a/docs/firmware/zephyr-device-sdk/light-db-stream/guide-lightdb-stream.md b/docs/firmware/zephyr-device-sdk/light-db-stream/guide-lightdb-stream.md index 28589e0d..4f15f703 100644 --- a/docs/firmware/zephyr-device-sdk/light-db-stream/guide-lightdb-stream.md +++ b/docs/firmware/zephyr-device-sdk/light-db-stream/guide-lightdb-stream.md @@ -3,7 +3,7 @@ title: LightDB Stream Request sidebar_position: 2 --- -The LightDB Stream sample contains many of the same elements as the other LightDB samples. The primary difference between LightDB State and LightDB Stream is the persistence of data. LightDB State is useful for applications of state management. With LightDB Stream, timestamped datapoints can be uploaded using the LightDB Stream service to accumulate time-series databases. Check out the [Cloud](/cloud) section of the documentation for information regarding accessing the accumulated data. +The LightDB Stream sample contains many of the same elements as the other LightDB samples. The primary difference between LightDB State and LightDB Stream is the persistence of data. LightDB State is useful for applications of state management. With LightDB Stream, timestamped datapoints can be uploaded using the LightDB Stream service to accumulate time-series databases. Check out the [Cloud](/device-management) section of the documentation for information regarding accessing the accumulated data. ## Includes diff --git a/docs/firmware/zephyr-device-sdk/logging/README.md b/docs/firmware/zephyr-device-sdk/logging/README.md index 98752a5b..0e52f90b 100644 --- a/docs/firmware/zephyr-device-sdk/logging/README.md +++ b/docs/firmware/zephyr-device-sdk/logging/README.md @@ -7,4 +7,4 @@ The Logging sample demonstrates how logging can be executed using the Zephyr log ![Console](../assets/logging-svg-a4.svg) -Checkout the [Logging guide](https://docs.golioth.io/cloud/services/logging/) for a walkthrough of the sample demonstrating the firmware calls used to interact with the Golioth Logging service. +Checkout the [Logging guide](https://docs.golioth.io/device-management/services/logging/) for a walkthrough of the sample demonstrating the firmware calls used to interact with the Golioth Logging service. diff --git a/docs/landing_page.md b/docs/landing_page.md index 267041d6..deadfa44 100644 --- a/docs/landing_page.md +++ b/docs/landing_page.md @@ -24,5 +24,5 @@ There are 5 major sections on the Golioth Docs page: - [Getting Started](/getting-started) - Start here! If you are confused at all, please [join our Discord](https://golioth.io/discord) or [let us know directly](mailto:devrel@golioth.io) - [Hardware](/hardware) - This section details which device platforms are explicitly supported and how you can get started with them quickly. There is also a catalog of all hardware that works with Golioth and whether or not it has been verified by the Golioth team, the community, the Zephyr community, etc. - [Firmware](/firmware) - This is the "device side" features of our offerings, including device Software Development Kets (SDKs). This section shows how to run the sample firmware that connects to the offerings in the Services section. -- [Cloud](/cloud) - This is the "server side" features of our offerings. Your embedded hardware will communicate with Golioth Services to push and pull information to the broader internet. This section details how to control and interact with each service, and also test the service without any hardware involved. This section also details how to interact with that data via webapps, mobile apps, and from anywhere else on the web. Make calls to the Golioth web API and display your users' data! +- [Cloud](/device-management) - This is the "server side" features of our offerings. Your embedded hardware will communicate with Golioth Services to push and pull information to the broader internet. This section details how to control and interact with each service, and also test the service without any hardware involved. This section also details how to interact with that data via webapps, mobile apps, and from anywhere else on the web. Make calls to the Golioth web API and display your users' data! - [Reference](/reference) - All generated API documentation lives here, including for the web side API and the Zephyr API diff --git a/docs/reference/2-protocols/1-coap/3-lightdb.md b/docs/reference/2-protocols/1-coap/3-lightdb.md index e4a91705..ad2c58de 100644 --- a/docs/reference/2-protocols/1-coap/3-lightdb.md +++ b/docs/reference/2-protocols/1-coap/3-lightdb.md @@ -3,11 +3,11 @@ id: lightdb title: LightDB --- -[LightDB Device Service](/cloud/services/lightdb) definitions over CoAP. +[LightDB Device Service](/device-management/services/lightdb) definitions over CoAP. How to use guides: -- [Read Write Data](/cloud/services/lightdb/read-write-data) +- [Read Write Data](/device-management/services/lightdb/read-write-data) ### Interface diff --git a/docs/reference/2-protocols/1-coap/4-lightdb-stream.md b/docs/reference/2-protocols/1-coap/4-lightdb-stream.md index eb959c50..5ae55811 100644 --- a/docs/reference/2-protocols/1-coap/4-lightdb-stream.md +++ b/docs/reference/2-protocols/1-coap/4-lightdb-stream.md @@ -3,11 +3,11 @@ id: lightdb-stream title: LightDB Stream --- -[LightDB Stream Device Service](/cloud/services/lightdb-stream) definitions over CoAP. +[LightDB Stream Device Service](/device-management/services/lightdb-stream) definitions over CoAP. How to use guides: -- [Sending Data](/cloud/services/lightdb-stream/sending-data) +- [Sending Data](/device-management/services/lightdb-stream/sending-data) ### Interface diff --git a/docs/reference/2-protocols/1-coap/5-logging.md b/docs/reference/2-protocols/1-coap/5-logging.md index be2c4d26..259fa588 100644 --- a/docs/reference/2-protocols/1-coap/5-logging.md +++ b/docs/reference/2-protocols/1-coap/5-logging.md @@ -3,11 +3,11 @@ id: logging title: Logging --- -[Logging Device Service](/cloud/services/logging) definitions over CoAP. +[Logging Device Service](/device-management/services/logging) definitions over CoAP. How to use guides: -- [Sending logs](/cloud/services/logging/sending-logs) +- [Sending logs](/device-management/services/logging/sending-logs) ### Interface diff --git a/docs/reference/2-protocols/1-coap/6-ota.md b/docs/reference/2-protocols/1-coap/6-ota.md index 22ffe4dc..baab5f0f 100644 --- a/docs/reference/2-protocols/1-coap/6-ota.md +++ b/docs/reference/2-protocols/1-coap/6-ota.md @@ -3,11 +3,11 @@ id: ota title: Over The Air (OTA) Updates --- -[Over The Air (OTA) Updates Service](/cloud/services/ota) definitions over CoAP. +[Over The Air (OTA) Updates Service](/device-management/services/ota) definitions over CoAP. How to use guides: -- [OTA Overview](/cloud/services/ota) +- [OTA Overview](/device-management/services/ota) ### Interface diff --git a/docs/reference/2-protocols/1-coap/7-limits.md b/docs/reference/2-protocols/1-coap/7-limits.md index 4cbdbce9..2f98efc7 100644 --- a/docs/reference/2-protocols/1-coap/7-limits.md +++ b/docs/reference/2-protocols/1-coap/7-limits.md @@ -11,7 +11,7 @@ Golioth servers enforce the following limit on CoAP requests: When passing frequent readings from a single device to Golioth (greater than 1 Hz) we recommend sending in batches. As noted for the [LightDB Stream -service](/cloud/services/lightdb-stream/sending-data), your device can add +service](/device-management/services/lightdb-stream/sending-data), your device can add timestamps to data packets by using `t`, `ts`, or `time` as the key. The Golioth LightDB Stream service will use the timestamp for the database entry instead of the time received. diff --git a/docs/reference/4-websocket/3-Endpoints/1-lightdb.md b/docs/reference/4-websocket/3-Endpoints/1-lightdb.md index 642eb8de..df11d4bf 100644 --- a/docs/reference/4-websocket/3-Endpoints/1-lightdb.md +++ b/docs/reference/4-websocket/3-Endpoints/1-lightdb.md @@ -3,7 +3,7 @@ id: lightdb title: LightDB --- -[LightDB Device Service](/cloud/services/lightdb) definitions. +[LightDB Device Service](/device-management/services/lightdb) definitions. Real-time endpoint to listen to any changes in a device state path. diff --git a/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md b/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md index c4c56e16..34697d59 100644 --- a/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md +++ b/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md @@ -3,7 +3,7 @@ id: lightdb-stream title: LightDB Stream --- -[LightDB Stream Device Service](/cloud/services/lightdb-stream) definitions. +[LightDB Stream Device Service](/device-management/services/lightdb-stream) definitions. Real-time endpoint to listen to a device's data stream as it arrives at the Golioth Cloud. diff --git a/docs/reference/4-websocket/3-Endpoints/3-logging.md b/docs/reference/4-websocket/3-Endpoints/3-logging.md index bfb0658f..8d63c75c 100644 --- a/docs/reference/4-websocket/3-Endpoints/3-logging.md +++ b/docs/reference/4-websocket/3-Endpoints/3-logging.md @@ -3,7 +3,7 @@ id: logging title: Logging --- -[Logging Device Service](/cloud/services/logging) definitions. +[Logging Device Service](/device-management/services/logging) definitions. Real-time endpoint to listen to a device's data stream as it arrives at the Golioth Cloud. diff --git a/docusaurus.config.js b/docusaurus.config.js index ef77e6d1..b7862d0f 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -34,9 +34,9 @@ module.exports = { position: "left", }, { - to: "cloud", - activeBasePath: "cloud", - label: "Cloud", + to: "device-management", + activeBasePath: "device-management", + label: "Device Management", position: "left", }, { @@ -68,7 +68,7 @@ module.exports = { }, { label: "Over the Air Updates", - to: "/cloud/services/ota", + to: "/device-management/services/ota", }, ], }, diff --git a/package.json b/package.json index f99afabf..53b7923c 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "serve": "docusaurus serve", "update-external-docs": "./scripts/update_external_docs.sh", "clear": "docusaurus clear", - "gen-protobuf": "pbjs -t json ../api/services/messages.proto > ./docs/cloud/2-output-streams/messages.json", + "gen-protobuf": "pbjs -t json ../api/services/messages.proto > ./docs/device-management/2-output-streams/messages.json", "build-device-catalog": "./scripts/get_zephyr_boards.sh && node ./scripts/device-catalog/index.js" }, "dependencies": { diff --git a/sidebars.js b/sidebars.js index 52970615..08738aee 100644 --- a/sidebars.js +++ b/sidebars.js @@ -37,10 +37,10 @@ const gettingstarted = [ }, ] -const cloud = [ +const devicemanagement = [ { type: 'autogenerated', - dirName: 'cloud', + dirName: 'device-management', }, ] @@ -48,5 +48,5 @@ module.exports = { gettingstarted, reference, firmware, - cloud, + devicemanagement, }; From bf3f5ec287fd25a478d2b6b8481abd5fa0d76a87 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Tue, 21 Nov 2023 11:20:46 -0600 Subject: [PATCH 04/88] reorg: fix hardware slugs, links; rebuild catalog * Fix slugs to use base of /firmware/hardware instead of /hardware * Fix links broken when moving hardware under firmware * Rebuild the hardware catalog to use new path Signed-off-by: Mike Szczys --- docs/device-management/1-services/README.md | 2 +- .../2-esp32/1-espidf-quickstart/README.md | 2 +- .../2-esp32/2-zephyr-quickstart/README.md | 4 +- docs/firmware/hardware/2-esp32/README.md | 2 +- .../1-zephyr-quickstart/README.md | 2 +- .../hardware/3-mimxrt1060_evkb/README.md | 2 +- .../2-zephyr-quickstart/5-flash-sample.md | 2 +- .../4-nrf91/2-zephyr-quickstart/README.md | 4 +- docs/firmware/hardware/4-nrf91/README.md | 2 +- .../5-simulating-devices-qemu.md | 2 +- .../2-zephyr-quickstart/README.md | 2 +- .../hardware/5-virtual-device/README.md | 2 +- .../hardware/6-catalog/6-hardware-catalog.mdx | 4 +- .../arm_mimxrt1060_evkb.md | 8 +-- .../arm_nrf9160dk_nrf9160.md | 8 +-- .../arm_qemu_cortex_m3.md | 8 +-- .../continuously-verified/xtensa_esp32.md | 8 +-- .../6-catalog/unverified/arc_em_starterkit.md | 4 +- .../6-catalog/unverified/arc_emsdp.md | 4 +- .../hardware/6-catalog/unverified/arc_hsdk.md | 4 +- .../6-catalog/unverified/arc_hsdk4xd.md | 4 +- .../6-catalog/unverified/arc_iotdk.md | 4 +- .../hardware/6-catalog/unverified/arc_nsim.md | 4 +- .../6-catalog/unverified/arc_qemu_arc.md | 4 +- .../unverified/arm64_bcm958402m2_a72.md | 4 +- .../arm64_fvp_base_revc_2xaemv8a.md | 4 +- .../unverified/arm64_fvp_baser_aemv8r.md | 4 +- .../arm64_intel_socfpga_agilex5_socdk.md | 4 +- .../arm64_intel_socfpga_agilex_socdk.md | 4 +- .../unverified/arm64_khadas_edgev.md | 4 +- .../6-catalog/unverified/arm64_mimx8mm_evk.md | 4 +- .../6-catalog/unverified/arm64_mimx8mn_evk.md | 4 +- .../6-catalog/unverified/arm64_mimx8mp_evk.md | 4 +- .../6-catalog/unverified/arm64_mimx93_evk.md | 4 +- .../unverified/arm64_nxp_ls1046ardb.md | 4 +- .../unverified/arm64_phycore_am62x_a53.md | 4 +- .../unverified/arm64_qemu_cortex_a53.md | 4 +- .../unverified/arm64_qemu_kvm_arm64.md | 4 +- .../unverified/arm64_rcar_h3ulcb_ca57.md | 4 +- .../unverified/arm64_rcar_salvator_xs_m3.md | 4 +- .../unverified/arm64_roc_rk3568_pc.md | 37 +++++++++++++ .../6-catalog/unverified/arm64_rpi_4b.md | 4 +- .../6-catalog/unverified/arm64_xenvm.md | 4 +- .../6-catalog/unverified/arm_96b_aerocore2.md | 4 +- .../6-catalog/unverified/arm_96b_argonkey.md | 4 +- .../6-catalog/unverified/arm_96b_avenger96.md | 4 +- .../6-catalog/unverified/arm_96b_carbon.md | 4 +- .../unverified/arm_96b_carbon_nrf51.md | 4 +- .../6-catalog/unverified/arm_96b_meerkat96.md | 4 +- .../6-catalog/unverified/arm_96b_neonkey.md | 4 +- .../6-catalog/unverified/arm_96b_nitrogen.md | 4 +- .../unverified/arm_96b_stm32_sensor_mez.md | 4 +- .../6-catalog/unverified/arm_96b_wistrio.md | 4 +- .../6-catalog/unverified/arm_acn52832.md | 4 +- .../unverified/arm_actinius_icarus.md | 4 +- .../unverified/arm_actinius_icarus_bee.md | 4 +- .../unverified/arm_actinius_icarus_som.md | 4 +- .../unverified/arm_actinius_icarus_som_dk.md | 4 +- .../arm_adafruit_feather_m0_basic_proto.md | 4 +- .../arm_adafruit_feather_m0_lora.md | 4 +- .../arm_adafruit_feather_nrf52840.md | 4 +- .../arm_adafruit_feather_stm32f405.md | 4 +- .../arm_adafruit_itsybitsy_m4_express.md | 4 +- .../arm_adafruit_itsybitsy_nrf52840.md | 4 +- .../unverified/arm_adafruit_kb2040.md | 4 +- .../unverified/arm_adafruit_trinket_m0.md | 4 +- .../6-catalog/unverified/arm_am62x_m4.md | 4 +- .../unverified/arm_apollo4p_blue_kxr_evb.md | 4 +- .../6-catalog/unverified/arm_apollo4p_evb.md | 4 +- .../6-catalog/unverified/arm_arduino_due.md | 4 +- .../unverified/arm_arduino_giga_r1.md | 4 +- .../unverified/arm_arduino_mkrzero.md | 4 +- .../unverified/arm_arduino_nano_33_ble.md | 4 +- .../unverified/arm_arduino_nano_33_iot.md | 4 +- .../unverified/arm_arduino_nicla_sense_me.md | 4 +- .../unverified/arm_arduino_portenta_h7.md | 4 +- .../unverified/arm_arduino_uno_r4.md | 36 +++++++++++++ .../6-catalog/unverified/arm_arduino_zero.md | 4 +- .../hardware/6-catalog/unverified/arm_arty.md | 4 +- .../6-catalog/unverified/arm_ast1030_evb.md | 4 +- .../unverified/arm_atsamc21n_xpro.md | 4 +- .../6-catalog/unverified/arm_atsamd20_xpro.md | 4 +- .../6-catalog/unverified/arm_atsamd21_xpro.md | 4 +- .../6-catalog/unverified/arm_atsame54_xpro.md | 4 +- .../6-catalog/unverified/arm_atsaml21_xpro.md | 4 +- .../6-catalog/unverified/arm_atsamr21_xpro.md | 4 +- .../6-catalog/unverified/arm_atsamr34_xpro.md | 4 +- .../unverified/arm_az3166_iotdevkit.md | 4 +- .../6-catalog/unverified/arm_b_g474e_dpow1.md | 4 +- .../unverified/arm_b_l072z_lrwan1.md | 4 +- .../unverified/arm_b_l4s5i_iot01a.md | 4 +- .../unverified/arm_b_u585i_iot02a.md | 5 +- .../6-catalog/unverified/arm_bbc_microbit.md | 4 +- .../unverified/arm_bbc_microbit_v2.md | 4 +- .../6-catalog/unverified/arm_bcm958401m2.md | 4 +- .../unverified/arm_bcm958402m2_m7.md | 4 +- .../6-catalog/unverified/arm_beagle_bcf.md | 4 +- .../6-catalog/unverified/arm_bl5340_dvk.md | 4 +- .../6-catalog/unverified/arm_bl652_dvk.md | 4 +- .../6-catalog/unverified/arm_bl653_dvk.md | 4 +- .../6-catalog/unverified/arm_bl654_dvk.md | 4 +- .../unverified/arm_bl654_sensor_board.md | 4 +- .../6-catalog/unverified/arm_bl654_usb.md | 4 +- .../6-catalog/unverified/arm_black_f407ve.md | 4 +- .../unverified/arm_black_f407zg_pro.md | 4 +- .../unverified/arm_blackpill_f401cc.md | 4 +- .../unverified/arm_blackpill_f401ce.md | 4 +- .../unverified/arm_blackpill_f411ce.md | 4 +- .../arm_blueclover_plt_demo_v2_nrf52832.md | 4 +- .../6-catalog/unverified/arm_bt510.md | 4 +- .../6-catalog/unverified/arm_bt610.md | 4 +- .../unverified/arm_cc1352p1_launchxl.md | 4 +- .../unverified/arm_cc1352r1_launchxl.md | 4 +- .../unverified/arm_cc1352r_sensortag.md | 4 +- .../unverified/arm_cc26x2r1_launchxl.md | 4 +- .../unverified/arm_cc3220sf_launchxl.md | 4 +- .../unverified/arm_cc3235sf_launchxl.md | 4 +- .../unverified/arm_colibri_imx7d_m4.md | 4 +- .../arm_contextualelectronics_abc.md | 4 +- .../unverified/arm_cy8ckit_062_ble.md | 4 +- .../unverified/arm_cy8ckit_062_wifi_bt.md | 4 +- .../6-catalog/unverified/arm_cy8ckit_062s4.md | 4 +- .../unverified/arm_cy8cproto_062_4343w.md | 8 ++- .../unverified/arm_cy8cproto_063_ble.md | 4 +- .../unverified/arm_cyclonev_socdk.md | 4 +- .../unverified/arm_da14695_dk_usb.md | 4 +- .../unverified/arm_da1469x_dk_pro.md | 6 ++- .../unverified/arm_decawave_dwm1001_dev.md | 4 +- .../6-catalog/unverified/arm_degu_evk.md | 4 +- .../unverified/arm_disco_l475_iot1.md | 4 +- .../6-catalog/unverified/arm_dragino_lsn50.md | 4 +- .../unverified/arm_dragino_nbsn95.md | 4 +- .../unverified/arm_ebyte_e73_tbb_nrf52832.md | 4 +- .../unverified/arm_efm32gg_sltb009a.md | 4 +- .../unverified/arm_efm32gg_slwstk6121a.md | 4 +- .../unverified/arm_efm32gg_stk3701a.md | 4 +- .../unverified/arm_efm32hg_slstk3400a.md | 4 +- .../unverified/arm_efm32pg_stk3401a.md | 4 +- .../unverified/arm_efm32pg_stk3402a.md | 4 +- .../unverified/arm_efm32wg_stk3800.md | 4 +- .../6-catalog/unverified/arm_efr32_radio.md | 4 +- .../unverified/arm_efr32_thunderboard.md | 4 +- .../unverified/arm_efr32mg_sltb004a.md | 4 +- .../unverified/arm_efr32xg24_dk2601b.md | 4 +- .../6-catalog/unverified/arm_ev11l78a.md | 4 +- .../hardware/6-catalog/unverified/arm_faze.md | 4 +- .../6-catalog/unverified/arm_frdm_k22f.md | 4 +- .../6-catalog/unverified/arm_frdm_k64f.md | 4 +- .../6-catalog/unverified/arm_frdm_k82f.md | 4 +- .../6-catalog/unverified/arm_frdm_kl25z.md | 4 +- .../6-catalog/unverified/arm_frdm_kw41z.md | 4 +- .../arm_fvp_baser_aemv8r_aarch32.md | 4 +- .../unverified/arm_gd32a503v_eval.md | 4 +- .../unverified/arm_gd32e103v_eval.md | 4 +- .../unverified/arm_gd32e507v_start.md | 4 +- .../unverified/arm_gd32e507z_eval.md | 4 +- .../unverified/arm_gd32f350r_eval.md | 4 +- .../unverified/arm_gd32f403z_eval.md | 4 +- .../unverified/arm_gd32f407v_start.md | 4 +- .../unverified/arm_gd32f450i_eval.md | 4 +- .../unverified/arm_gd32f450v_start.md | 4 +- .../unverified/arm_gd32f450z_eval.md | 4 +- .../unverified/arm_gd32f470i_eval.md | 4 +- .../unverified/arm_gd32l233r_eval.md | 4 +- .../unverified/arm_google_dragonclaw.md | 4 +- .../6-catalog/unverified/arm_google_kukui.md | 4 +- .../unverified/arm_google_twinkie_v2.md | 4 +- .../6-catalog/unverified/arm_hexiwear_k64.md | 4 +- .../unverified/arm_hexiwear_kw40z.md | 4 +- .../unverified/arm_holyiot_yj16019.md | 4 +- .../6-catalog/unverified/arm_ip_k66f.md | 4 +- .../6-catalog/unverified/arm_kv260_r5.md | 4 +- .../6-catalog/unverified/arm_legend.md | 4 +- .../unverified/arm_lora_e5_dev_board.md | 4 +- .../unverified/arm_lpcxpresso11u68.md | 4 +- .../unverified/arm_lpcxpresso51u68.md | 4 +- .../unverified/arm_lpcxpresso54114.md | 4 +- .../unverified/arm_lpcxpresso55s06.md | 4 +- .../unverified/arm_lpcxpresso55s16.md | 4 +- .../unverified/arm_lpcxpresso55s28.md | 4 +- .../unverified/arm_lpcxpresso55s36.md | 4 +- .../unverified/arm_lpcxpresso55s69.md | 4 +- .../unverified/arm_mec1501modular_assy6885.md | 4 +- .../unverified/arm_mec15xxevb_assy6853.md | 4 +- .../unverified/arm_mec172xevb_assy6906.md | 4 +- .../unverified/arm_mec172xmodular_assy6930.md | 4 +- .../6-catalog/unverified/arm_mercury_xu.md | 4 +- .../6-catalog/unverified/arm_mg100.md | 4 +- .../unverified/arm_mikroe_clicker_2.md | 4 +- .../arm_mikroe_mini_m4_for_stm32.md | 4 +- .../6-catalog/unverified/arm_mimx8mm_evk.md | 4 +- .../unverified/arm_mimx8mm_phyboard_polis.md | 4 +- .../6-catalog/unverified/arm_mimx8mp_evk.md | 4 +- .../unverified/arm_mimx8mp_phyboard_pollux.md | 4 +- .../6-catalog/unverified/arm_mimx8mq_evk.md | 4 +- .../unverified/arm_mimxrt1010_evk.md | 4 +- .../unverified/arm_mimxrt1015_evk.md | 4 +- .../unverified/arm_mimxrt1020_evk.md | 4 +- .../unverified/arm_mimxrt1024_evk.md | 4 +- .../unverified/arm_mimxrt1040_evk.md | 4 +- .../unverified/arm_mimxrt1050_evk.md | 4 +- .../unverified/arm_mimxrt1060_evk.md | 4 +- .../unverified/arm_mimxrt1062_fmurt6.md | 4 +- .../unverified/arm_mimxrt1064_evk.md | 4 +- .../unverified/arm_mimxrt1160_evk.md | 4 +- .../unverified/arm_mimxrt1170_evk.md | 4 +- .../6-catalog/unverified/arm_mimxrt595_evk.md | 4 +- .../6-catalog/unverified/arm_mimxrt685_evk.md | 4 +- .../6-catalog/unverified/arm_mm_feather.md | 4 +- .../6-catalog/unverified/arm_mm_swiftio.md | 4 +- .../6-catalog/unverified/arm_mps2_an385.md | 4 +- .../6-catalog/unverified/arm_mps2_an521.md | 4 +- .../6-catalog/unverified/arm_mps3_an547.md | 4 +- .../6-catalog/unverified/arm_mr_canhubk3.md | 4 +- .../arm_msp_exp432p401r_launchxl.md | 4 +- .../6-catalog/unverified/arm_npcx4m8f_evb.md | 4 +- .../6-catalog/unverified/arm_npcx7m6fb_evb.md | 4 +- .../6-catalog/unverified/arm_npcx9m6f_evb.md | 4 +- .../unverified/arm_nrf21540dk_nrf52840.md | 4 +- .../6-catalog/unverified/arm_nrf51_ble400.md | 4 +- .../6-catalog/unverified/arm_nrf51_blenano.md | 4 +- .../unverified/arm_nrf51_vbluno51.md | 4 +- .../unverified/arm_nrf51dk_nrf51422.md | 4 +- .../unverified/arm_nrf51dongle_nrf51422.md | 4 +- .../6-catalog/unverified/arm_nrf52832_mdk.md | 4 +- .../unverified/arm_nrf52833dk_nrf52820.md | 4 +- .../unverified/arm_nrf52833dk_nrf52833.md | 4 +- .../6-catalog/unverified/arm_nrf52840_blip.md | 4 +- .../6-catalog/unverified/arm_nrf52840_mdk.md | 4 +- .../unverified/arm_nrf52840_mdk_usb_dongle.md | 4 +- .../unverified/arm_nrf52840_papyr.md | 4 +- .../unverified/arm_nrf52840dk_nrf52811.md | 4 +- .../unverified/arm_nrf52840dk_nrf52840.md | 4 +- .../unverified/arm_nrf52840dongle_nrf52840.md | 4 +- .../unverified/arm_nrf52_adafruit_feather.md | 4 +- .../unverified/arm_nrf52_blenano2.md | 4 +- .../unverified/arm_nrf52_sparkfun.md | 4 +- .../unverified/arm_nrf52_vbluno52.md | 4 +- .../unverified/arm_nrf52dk_nrf52805.md | 4 +- .../unverified/arm_nrf52dk_nrf52810.md | 4 +- .../unverified/arm_nrf52dk_nrf52832.md | 4 +- .../arm_nrf5340_audio_dk_nrf5340.md | 4 +- .../unverified/arm_nrf5340dk_nrf5340.md | 4 +- .../unverified/arm_nrf9131ek_nrf9131.md | 43 +++++++++++++++ .../unverified/arm_nrf9160_innblue21.md | 4 +- .../unverified/arm_nrf9160_innblue22.md | 4 +- .../unverified/arm_nrf9160dk_nrf52840.md | 4 +- .../unverified/arm_nrf9161dk_nrf9161.md | 4 +- .../6-catalog/unverified/arm_nucleo_c031c6.md | 4 +- .../6-catalog/unverified/arm_nucleo_f030r8.md | 4 +- .../6-catalog/unverified/arm_nucleo_f031k6.md | 4 +- .../6-catalog/unverified/arm_nucleo_f042k6.md | 4 +- .../6-catalog/unverified/arm_nucleo_f070rb.md | 4 +- .../6-catalog/unverified/arm_nucleo_f091rc.md | 4 +- .../6-catalog/unverified/arm_nucleo_f103rb.md | 4 +- .../6-catalog/unverified/arm_nucleo_f207zg.md | 4 +- .../6-catalog/unverified/arm_nucleo_f302r8.md | 4 +- .../6-catalog/unverified/arm_nucleo_f303k8.md | 4 +- .../6-catalog/unverified/arm_nucleo_f303re.md | 4 +- .../6-catalog/unverified/arm_nucleo_f334r8.md | 4 +- .../6-catalog/unverified/arm_nucleo_f401re.md | 4 +- .../6-catalog/unverified/arm_nucleo_f410rb.md | 4 +- .../6-catalog/unverified/arm_nucleo_f411re.md | 4 +- .../6-catalog/unverified/arm_nucleo_f412zg.md | 4 +- .../6-catalog/unverified/arm_nucleo_f413zh.md | 4 +- .../6-catalog/unverified/arm_nucleo_f429zi.md | 4 +- .../6-catalog/unverified/arm_nucleo_f446re.md | 4 +- .../6-catalog/unverified/arm_nucleo_f446ze.md | 4 +- .../6-catalog/unverified/arm_nucleo_f746zg.md | 4 +- .../6-catalog/unverified/arm_nucleo_f756zg.md | 4 +- .../6-catalog/unverified/arm_nucleo_f767zi.md | 4 +- .../6-catalog/unverified/arm_nucleo_g031k8.md | 4 +- .../6-catalog/unverified/arm_nucleo_g070rb.md | 4 +- .../6-catalog/unverified/arm_nucleo_g071rb.md | 4 +- .../6-catalog/unverified/arm_nucleo_g0b1re.md | 4 +- .../6-catalog/unverified/arm_nucleo_g431rb.md | 4 +- .../6-catalog/unverified/arm_nucleo_g474re.md | 4 +- .../6-catalog/unverified/arm_nucleo_h563zi.md | 4 +- .../6-catalog/unverified/arm_nucleo_h723zg.md | 4 +- .../6-catalog/unverified/arm_nucleo_h743zi.md | 4 +- .../unverified/arm_nucleo_h745zi_q.md | 4 +- .../6-catalog/unverified/arm_nucleo_h753zi.md | 4 +- .../unverified/arm_nucleo_h7a3zi_q.md | 4 +- .../6-catalog/unverified/arm_nucleo_l011k4.md | 4 +- .../6-catalog/unverified/arm_nucleo_l031k6.md | 4 +- .../6-catalog/unverified/arm_nucleo_l053r8.md | 4 +- .../6-catalog/unverified/arm_nucleo_l073rz.md | 4 +- .../6-catalog/unverified/arm_nucleo_l152re.md | 4 +- .../unverified/arm_nucleo_l412rb_p.md | 4 +- .../6-catalog/unverified/arm_nucleo_l432kc.md | 4 +- .../unverified/arm_nucleo_l433rc_p.md | 4 +- .../6-catalog/unverified/arm_nucleo_l452re.md | 4 +- .../6-catalog/unverified/arm_nucleo_l476rg.md | 4 +- .../6-catalog/unverified/arm_nucleo_l496zg.md | 4 +- .../6-catalog/unverified/arm_nucleo_l4a6zg.md | 4 +- .../6-catalog/unverified/arm_nucleo_l4r5zi.md | 4 +- .../unverified/arm_nucleo_l552ze_q.md | 4 +- .../unverified/arm_nucleo_u575zi_q.md | 4 +- .../unverified/arm_nucleo_u5a5zj_q.md | 4 +- .../6-catalog/unverified/arm_nucleo_wb55rg.md | 4 +- .../unverified/arm_nucleo_wba52cg.md | 5 +- .../6-catalog/unverified/arm_nucleo_wl55jc.md | 4 +- .../unverified/arm_numaker_pfm_m467.md | 4 +- .../unverified/arm_nuvoton_pfm_m487.md | 4 +- .../arm_olimex_lora_stm32wl_devkit.md | 4 +- .../unverified/arm_olimex_stm32_e407.md | 4 +- .../unverified/arm_olimex_stm32_h103.md | 4 +- .../unverified/arm_olimex_stm32_h405.md | 4 +- .../unverified/arm_olimex_stm32_h407.md | 4 +- .../unverified/arm_olimex_stm32_p405.md | 4 +- .../unverified/arm_olimexino_stm32.md | 4 +- .../6-catalog/unverified/arm_pan1770_evb.md | 4 +- .../6-catalog/unverified/arm_pan1780_evb.md | 4 +- .../6-catalog/unverified/arm_pan1781_evb.md | 4 +- .../6-catalog/unverified/arm_pan1782_evb.md | 4 +- .../6-catalog/unverified/arm_pan1783_evb.md | 36 +++++++++++++ .../unverified/arm_pandora_stm32l475.md | 4 +- .../unverified/arm_particle_argon.md | 4 +- .../unverified/arm_particle_boron.md | 4 +- .../unverified/arm_particle_xenon.md | 4 +- .../6-catalog/unverified/arm_pico_pi_m4.md | 4 +- .../unverified/arm_pinetime_devkit0.md | 4 +- .../unverified/arm_pinnacle_100_dvk.md | 4 +- .../unverified/arm_qemu_cortex_a9.md | 4 +- .../unverified/arm_qemu_cortex_m0.md | 4 +- .../unverified/arm_qemu_cortex_r5.md | 4 +- .../hardware/6-catalog/unverified/arm_qomu.md | 4 +- .../6-catalog/unverified/arm_quick_feather.md | 4 +- .../unverified/arm_rak4631_nrf52840.md | 4 +- .../unverified/arm_rak5010_nrf52840.md | 4 +- .../arm_raytac_mdbt50q_db_33_nrf52833.md | 4 +- .../arm_raytac_mdbt50q_db_40_nrf52840.md | 4 +- .../arm_raytac_mdbt53_db_40_nrf5340.md | 4 +- .../arm_raytac_mdbt53v_db_40_nrf5340.md | 4 +- .../unverified/arm_rcar_h3_salvatorx.md | 4 +- .../6-catalog/unverified/arm_rcar_h3ulcb.md | 4 +- .../unverified/arm_rddrone_fmuk66.md | 4 +- .../6-catalog/unverified/arm_reel_board.md | 4 +- .../6-catalog/unverified/arm_rm1xx_dvk.md | 4 +- .../6-catalog/unverified/arm_ronoth_lodev.md | 4 +- .../6-catalog/unverified/arm_rpi_pico.md | 4 +- .../unverified/arm_ruuvi_ruuvitag.md | 4 +- .../unverified/arm_rzt2m_starterkit.md | 36 +++++++++++++ .../unverified/arm_s32z270dc2_r52.md | 4 +- .../6-catalog/unverified/arm_sam4e_xpro.md | 4 +- .../6-catalog/unverified/arm_sam4l_ek.md | 4 +- .../unverified/arm_sam4s_xplained.md | 4 +- .../unverified/arm_sam_e70_xplained.md | 4 +- .../6-catalog/unverified/arm_sam_v71_xult.md | 4 +- .../6-catalog/unverified/arm_scobc_module1.md | 4 +- .../unverified/arm_seeeduino_xiao.md | 4 +- .../unverified/arm_segger_trb_stm32f407.md | 4 +- .../unverified/arm_sensortile_box.md | 4 +- .../unverified/arm_sensortile_box_pro.md | 44 +++++++++++++++ .../6-catalog/unverified/arm_serpente.md | 4 +- .../arm_sparkfun_pro_micro_rp2040.md | 4 +- .../arm_sparkfun_thing_plus_nrf9160.md | 4 +- .../unverified/arm_steval_fcu001v1.md | 4 +- .../6-catalog/unverified/arm_stm3210c_eval.md | 4 +- .../unverified/arm_stm32373c_eval.md | 4 +- .../6-catalog/unverified/arm_stm32_min_dev.md | 4 +- .../unverified/arm_stm32f030_demo.md | 4 +- .../unverified/arm_stm32f072_eval.md | 4 +- .../unverified/arm_stm32f072b_disco.md | 4 +- .../6-catalog/unverified/arm_stm32f0_disco.md | 4 +- .../unverified/arm_stm32f103_mini.md | 4 +- .../6-catalog/unverified/arm_stm32f3_disco.md | 4 +- .../unverified/arm_stm32f3_seco_d23.md | 4 +- .../unverified/arm_stm32f401_mini.md | 4 +- .../unverified/arm_stm32f411e_disco.md | 4 +- .../unverified/arm_stm32f412g_disco.md | 4 +- .../unverified/arm_stm32f429i_disc1.md | 4 +- .../unverified/arm_stm32f469i_disco.md | 4 +- .../6-catalog/unverified/arm_stm32f4_disco.md | 4 +- .../unverified/arm_stm32f723e_disco.md | 4 +- .../unverified/arm_stm32f746g_disco.md | 4 +- .../6-catalog/unverified/arm_stm32f7508_dk.md | 4 +- .../unverified/arm_stm32f769i_disco.md | 4 +- .../unverified/arm_stm32g0316_disco.md | 4 +- .../unverified/arm_stm32g071b_disco.md | 4 +- .../unverified/arm_stm32g081b_eval.md | 4 +- .../6-catalog/unverified/arm_stm32h573i_dk.md | 4 +- .../unverified/arm_stm32h735g_disco.md | 4 +- .../unverified/arm_stm32h747i_disco.md | 4 +- .../6-catalog/unverified/arm_stm32h7b3i_dk.md | 4 +- .../6-catalog/unverified/arm_stm32l1_disco.md | 4 +- .../unverified/arm_stm32l476g_disco.md | 4 +- .../unverified/arm_stm32l496g_disco.md | 4 +- .../unverified/arm_stm32l4r9i_disco.md | 50 ++++++++++++++++++ .../6-catalog/unverified/arm_stm32l562e_dk.md | 5 +- .../unverified/arm_stm32mp157c_dk2.md | 4 +- .../6-catalog/unverified/arm_stm32u5a9j_dk.md | 48 +++++++++++++++++ .../6-catalog/unverified/arm_stm32vl_disco.md | 4 +- .../6-catalog/unverified/arm_swan_r5.md | 4 +- .../6-catalog/unverified/arm_tdk_robokit1.md | 4 +- .../6-catalog/unverified/arm_teensy4.md | 4 +- .../unverified/arm_thingy52_nrf52832.md | 4 +- .../unverified/arm_thingy53_nrf5340.md | 4 +- .../6-catalog/unverified/arm_twr_ke18f.md | 4 +- .../6-catalog/unverified/arm_twr_kv58f220m.md | 4 +- .../unverified/arm_ubx_bmd300eval_nrf52832.md | 4 +- .../unverified/arm_ubx_bmd330eval_nrf52810.md | 4 +- .../unverified/arm_ubx_bmd340eval_nrf52840.md | 4 +- .../unverified/arm_ubx_bmd345eval_nrf52840.md | 4 +- .../unverified/arm_ubx_bmd360eval_nrf52811.md | 4 +- .../unverified/arm_ubx_bmd380eval_nrf52840.md | 4 +- .../unverified/arm_ubx_evkannab1_nrf52832.md | 4 +- .../unverified/arm_ubx_evkninab1_nrf52832.md | 4 +- .../unverified/arm_ubx_evkninab3_nrf52840.md | 4 +- .../unverified/arm_ubx_evkninab4_nrf52833.md | 4 +- .../unverified/arm_udoo_neo_full_m4.md | 4 +- .../6-catalog/unverified/arm_usb_kw24d512.md | 4 +- .../6-catalog/unverified/arm_v2m_beetle.md | 4 +- .../6-catalog/unverified/arm_v2m_musca_b1.md | 4 +- .../6-catalog/unverified/arm_v2m_musca_s1.md | 4 +- .../unverified/arm_verdin_imx8mp_m7.md | 36 +++++++++++++ .../6-catalog/unverified/arm_vmu_rt1170.md | 4 +- .../6-catalog/unverified/arm_warp7_m4.md | 4 +- .../unverified/arm_waveshare_open103z.md | 4 +- .../unverified/arm_we_ophelia1ev_nrf52805.md | 4 +- .../unverified/arm_we_proteus2ev_nrf52832.md | 4 +- .../unverified/arm_we_proteus3ev_nrf52840.md | 4 +- .../unverified/arm_weact_stm32g431_core.md | 45 ++++++++++++++++ .../6-catalog/unverified/arm_wio_terminal.md | 4 +- .../6-catalog/unverified/arm_xiao_ble.md | 4 +- .../unverified/arm_xmc45_relax_kit.md | 5 +- .../unverified/arm_xmc47_relax_kit.md | 5 +- .../hardware/6-catalog/unverified/arm_zybo.md | 4 +- .../6-catalog/unverified/mips_qemu_malta.md | 4 +- .../unverified/nios2_altera_max10.md | 4 +- .../6-catalog/unverified/nios2_qemu_nios2.md | 4 +- .../6-catalog/unverified/posix_common.md | 4 +- .../6-catalog/unverified/posix_doc.md | 4 +- .../unverified/posix_native_posix.md | 5 +- .../6-catalog/unverified/posix_native_sim.md | 5 +- .../6-catalog/unverified/posix_nrf_bsim.md | 4 +- .../unverified/riscv_adp_xc7k_ae350.md | 4 +- .../unverified/riscv_esp32c3_devkitm.md | 4 +- .../unverified/riscv_esp32c3_luatos_core.md | 4 +- .../unverified/riscv_gd32vf103c_starter.md | 4 +- .../unverified/riscv_gd32vf103v_eval.md | 4 +- .../6-catalog/unverified/riscv_hifive1.md | 4 +- .../unverified/riscv_hifive1_revb.md | 4 +- .../unverified/riscv_hifive_unleashed.md | 4 +- .../unverified/riscv_hifive_unmatched.md | 4 +- .../unverified/riscv_icev_wireless.md | 4 +- .../6-catalog/unverified/riscv_it82xx2_evb.md | 4 +- .../6-catalog/unverified/riscv_it8xxx2_evb.md | 4 +- .../unverified/riscv_litex_vexriscv.md | 4 +- .../6-catalog/unverified/riscv_longan_nano.md | 4 +- .../6-catalog/unverified/riscv_m2gl025_miv.md | 4 +- .../6-catalog/unverified/riscv_mpfs_icicle.md | 4 +- .../6-catalog/unverified/riscv_neorv32.md | 4 +- .../6-catalog/unverified/riscv_niosv_g.md | 4 +- .../6-catalog/unverified/riscv_niosv_m.md | 4 +- .../unverified/riscv_opentitan_earlgrey.md | 4 +- .../unverified/riscv_qemu_riscv32.md | 4 +- .../unverified/riscv_qemu_riscv32e.md | 4 +- .../unverified/riscv_qemu_riscv64.md | 4 +- .../6-catalog/unverified/riscv_rv32m1_vega.md | 4 +- .../riscv_sparkfun_red_v_things_plus.md | 4 +- .../6-catalog/unverified/riscv_stamp_c3.md | 4 +- .../unverified/riscv_titanium_ti60_f225.md | 4 +- .../unverified/riscv_tlsr9518adk80d.md | 4 +- .../unverified/riscv_xiao_esp32c3.md | 4 +- .../unverified/sparc_generic_leon3.md | 4 +- .../6-catalog/unverified/sparc_gr716a_mini.md | 4 +- .../6-catalog/unverified/sparc_qemu_leon3.md | 4 +- .../hardware/6-catalog/unverified/x86_acrn.md | 4 +- .../6-catalog/unverified/x86_common.md | 4 +- .../6-catalog/unverified/x86_intel_adl.md | 4 +- .../6-catalog/unverified/x86_intel_ehl.md | 4 +- .../6-catalog/unverified/x86_intel_ish.md | 4 +- .../6-catalog/unverified/x86_intel_rpl.md | 4 +- .../6-catalog/unverified/x86_qemu_x86.md | 4 +- .../6-catalog/unverified/x86_up_squared.md | 5 +- .../unverified/xtensa_esp32_devkitc_wroom.md | 4 +- .../unverified/xtensa_esp32_devkitc_wrover.md | 4 +- .../unverified/xtensa_esp32_ethernet_kit.md | 4 +- .../6-catalog/unverified/xtensa_esp32_net.md | 4 +- .../unverified/xtensa_esp32s2_franzininho.md | 4 +- .../unverified/xtensa_esp32s2_lolin_mini.md | 38 +++++++++++++ .../unverified/xtensa_esp32s2_saola.md | 4 +- .../unverified/xtensa_esp32s3_devkitm.md | 4 +- .../unverified/xtensa_esp32s3_luatos_core.md | 4 +- .../unverified/xtensa_esp_wrover_kit.md | 4 +- .../xtensa_heltec_wifi_lora32_v2.md | 4 +- .../xtensa_heltec_wireless_stick_lite_v3.md | 46 ++++++++++++++++ .../xtensa_intel_adsp_ace15_mtpm.md | 4 +- .../unverified/xtensa_intel_adsp_ace20_lnl.md | 4 +- .../unverified/xtensa_intel_adsp_cavs25.md | 4 +- .../unverified/xtensa_m5stack_atoms3.md | 44 +++++++++++++++ .../unverified/xtensa_m5stack_core2.md | 4 +- .../unverified/xtensa_m5stickc_plus.md | 4 +- .../unverified/xtensa_nxp_adsp_imx8.md | 4 +- .../unverified/xtensa_nxp_adsp_imx8m.md | 6 ++- .../unverified/xtensa_nxp_adsp_imx8x.md | 4 +- .../unverified/xtensa_nxp_adsp_rt595.md | 36 +++++++++++++ .../6-catalog/unverified/xtensa_odroid_go.md | 4 +- .../unverified/xtensa_olimex_esp32_evb.md | 4 +- .../unverified/xtensa_qemu_xtensa.md | 4 +- .../unverified/xtensa_xiao_esp32s3.md | 4 +- .../6-catalog/unverified/xtensa_xt-sim.md | 4 +- .../6-catalog/unverified/xtensa_yd_esp32.md | 4 +- .../arm_circuitdojo_feather_nrf9160.md | 4 +- docs/firmware/hardware/README.md | 12 ++--- docs/firmware/hardware/assets/boards.json | 46 ++++++++++------ .../2-build-sample-application.md | 2 +- docs/getting-started/1-overview.md | 4 +- docs/landing_page.md | 4 +- .../getting-started_choose-device.md | 2 +- scripts/device-catalog/README.md | 4 +- scripts/device-catalog/boardToMdx.js | 8 +-- scripts/device-catalog/support.json | 12 ++--- static/img/boards/arm/pan1783_evb.jpg | Bin 0 -> 57564 bytes static/img/boards/arm/rzt2m_starterkit.png | Bin 0 -> 96455 bytes static/img/boards/arm/sensortile_box_pro.jpg | Bin 0 -> 26646 bytes static/img/boards/arm/stm32l4r9i_disco.jpg | Bin 0 -> 57892 bytes 518 files changed, 1625 insertions(+), 1020 deletions(-) create mode 100644 docs/firmware/hardware/6-catalog/unverified/arm64_roc_rk3568_pc.md create mode 100644 docs/firmware/hardware/6-catalog/unverified/arm_arduino_uno_r4.md create mode 100644 docs/firmware/hardware/6-catalog/unverified/arm_nrf9131ek_nrf9131.md create mode 100644 docs/firmware/hardware/6-catalog/unverified/arm_pan1783_evb.md create mode 100644 docs/firmware/hardware/6-catalog/unverified/arm_rzt2m_starterkit.md create mode 100644 docs/firmware/hardware/6-catalog/unverified/arm_sensortile_box_pro.md create mode 100644 docs/firmware/hardware/6-catalog/unverified/arm_stm32l4r9i_disco.md create mode 100644 docs/firmware/hardware/6-catalog/unverified/arm_stm32u5a9j_dk.md create mode 100644 docs/firmware/hardware/6-catalog/unverified/arm_verdin_imx8mp_m7.md create mode 100644 docs/firmware/hardware/6-catalog/unverified/arm_weact_stm32g431_core.md create mode 100644 docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s2_lolin_mini.md create mode 100644 docs/firmware/hardware/6-catalog/unverified/xtensa_heltec_wireless_stick_lite_v3.md create mode 100644 docs/firmware/hardware/6-catalog/unverified/xtensa_m5stack_atoms3.md create mode 100644 docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_rt595.md create mode 100644 static/img/boards/arm/pan1783_evb.jpg create mode 100644 static/img/boards/arm/rzt2m_starterkit.png create mode 100644 static/img/boards/arm/sensortile_box_pro.jpg create mode 100644 static/img/boards/arm/stm32l4r9i_disco.jpg diff --git a/docs/device-management/1-services/README.md b/docs/device-management/1-services/README.md index 1fa542ac..476217ad 100644 --- a/docs/device-management/1-services/README.md +++ b/docs/device-management/1-services/README.md @@ -4,4 +4,4 @@ title: Services Overview slug: /device-management/services --- -Device Services are the features that Golioth delivers to connected embedded devices (such as a product based on the [ESP32](/hardware/esp32) or [nRF91](/hardware/nrf91)). Services, and the content of this section of the documentation, will revolve around implementing the service and more importantly, using tools like [goliothctl](/reference/command-line-tools/goliothctl/goliothctl/) and [coap](/reference/command-line-tools/coap/coap/) to test +Device Services are the features that Golioth delivers to connected embedded devices (such as a product based on the [ESP32](/firmware/hardware/esp32) or [nRF91](/firmware/hardware/nrf91)). Services, and the content of this section of the documentation, will revolve around implementing the service and more importantly, using tools like [goliothctl](/reference/command-line-tools/goliothctl/goliothctl/) and [coap](/reference/command-line-tools/coap/coap/) to test diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/README.md b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/README.md index ff2e1d96..c5a33e1f 100644 --- a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/README.md +++ b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/README.md @@ -1,7 +1,7 @@ --- id: overview title: ESP32 ESP-IDF Quickstart -slug: /hardware/esp32/espidf-quickstart +slug: /firmware/hardware/esp32/espidf-quickstart --- :::caution diff --git a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/README.md b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/README.md index d4eebb8c..09abe880 100644 --- a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/README.md +++ b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/README.md @@ -1,14 +1,14 @@ --- id: overview title: ESP32 Zephyr Quickstart -slug: /hardware/esp32/zephyr-quickstart +slug: /firmware/hardware/esp32/zephyr-quickstart --- :::caution You must first follow the [Golioth Platform Quickstart](/getting-started/) before attempting this guide. ::: -This work-through will demonstrate how to quickly connect an Espressif [ESP32 DevKitC](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html) with [Zephyr](https://www.zephyrproject.org) & [`west`](https://docs.zephyrproject.org/latest/guides/west/index.html). Remember, we first need to install the main tool you need to work with Golioth, `goliothctl` using the Golioth Platform Guide. +This work-through will demonstrate how to quickly connect an Espressif [ESP32 DevKitC](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html) with [Zephyr](https://www.zephyrproject.org) & [`west`](https://docs.zephyrproject.org/latest/guides/west/index.html). Remember, we first need to install the main tool you need to work with Golioth, `goliothctl` using the Golioth Platform Guide. :::note diff --git a/docs/firmware/hardware/2-esp32/README.md b/docs/firmware/hardware/2-esp32/README.md index 7838ec55..e581cdab 100644 --- a/docs/firmware/hardware/2-esp32/README.md +++ b/docs/firmware/hardware/2-esp32/README.md @@ -1,7 +1,7 @@ --- id: overview title: ESP32 Overview -slug: /hardware/esp32 +slug: /firmware/hardware/esp32 --- ## What is the ESP32? diff --git a/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/README.md b/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/README.md index 13d2d81b..736fab9a 100644 --- a/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/README.md +++ b/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/README.md @@ -1,7 +1,7 @@ --- id: overview title: NXP i.MX RT1060 Zephyr Quickstart -slug: /hardware/mimxrt1060_evkb/zephyr-quickstart +slug: /firmware/hardware/mimxrt1060_evkb/zephyr-quickstart --- This walk-through will demonstrate how to quickly connect an NXP [MIMXRT1060_EVKB Evaluation Kit](https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/i-mx-rt1060-evaluation-kit:MIMXRT1060-EVKB) with [Zephyr](https://www.zephyrproject.org) & [`west`](https://docs.zephyrproject.org/latest/guides/west/index.html). diff --git a/docs/firmware/hardware/3-mimxrt1060_evkb/README.md b/docs/firmware/hardware/3-mimxrt1060_evkb/README.md index aab6ed67..9188946b 100644 --- a/docs/firmware/hardware/3-mimxrt1060_evkb/README.md +++ b/docs/firmware/hardware/3-mimxrt1060_evkb/README.md @@ -1,7 +1,7 @@ --- id: overview title: NXP i.MX RT1060 Overview -slug: /hardware/mimxrt1060_evkb +slug: /firmware/hardware/mimxrt1060_evkb --- ## What is the i.MX RT1060? diff --git a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/5-flash-sample.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/5-flash-sample.md index ffaa5972..1570a190 100644 --- a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/5-flash-sample.md +++ b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/5-flash-sample.md @@ -49,7 +49,7 @@ CONFIG_GOLIOTH_SAMPLE_HARDCODED_PSK_ID="DEVICE_CRED_ID" CONFIG_GOLIOTH_SAMPLE_HARDCODED_PSK="DEVICE_PSK" ``` -Set the PSK & PSK ID to match what was used during the provisioning step. Networking validation is taken care of by your SIM card, which was tested in the [carrier setup section](/hardware/nrf91/zephyr-quickstart/carrier-setup) +Set the PSK & PSK ID to match what was used during the provisioning step. Networking validation is taken care of by your SIM card, which was tested in the [carrier setup section](/firmware/hardware/nrf91/zephyr-quickstart/carrier-setup) After saving, build the sample (for the [nRF9160 DK](https://www.nordicsemi.com/Products/Development-hardware/nRF9160-DK/GetStarted)) with the new settings applied. diff --git a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/README.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/README.md index a566f91a..295880b5 100644 --- a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/README.md +++ b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/README.md @@ -1,7 +1,7 @@ --- id: overview title: nRF9160 Zephyr Quickstart -slug: /hardware/nrf91/zephyr-quickstart +slug: /firmware/hardware/nrf91/zephyr-quickstart --- :::caution @@ -10,4 +10,4 @@ You must first follow the [Golioth Platform Quickstart](/getting-started) before This walk-through will demonstrate how to quickly connect an nRF9160 based device to Golioth. The [Nordic nRF9160 DK](https://www.nordicsemi.com/Products/Development-hardware/nRF9160-DK) is officially supported by the Golioth SDK and will be used in this demonstration. -See the [Hardware Catalog](/hardware/catalog/search) search tool for more devices that use the nRF9160. +See the [Hardware Catalog](/firmware/hardware/catalog/search) search tool for more devices that use the nRF9160. diff --git a/docs/firmware/hardware/4-nrf91/README.md b/docs/firmware/hardware/4-nrf91/README.md index 973e9ca5..ca4066de 100644 --- a/docs/firmware/hardware/4-nrf91/README.md +++ b/docs/firmware/hardware/4-nrf91/README.md @@ -1,7 +1,7 @@ --- id: overview title: nRF91 Overview -slug: /hardware/nrf91 +slug: /firmware/hardware/nrf91 --- ## What is the nRF91? diff --git a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/5-simulating-devices-qemu.md b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/5-simulating-devices-qemu.md index 6bf5eb23..11facabb 100644 --- a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/5-simulating-devices-qemu.md +++ b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/5-simulating-devices-qemu.md @@ -58,6 +58,6 @@ and run it: west build -t run ``` -This should have the same effect as running on a piece of hardware, as in the [ESP32](/hardware/esp32/zephyr-quickstart) or [nRF91](/hardware/nrf91/zephyr-quickstart) quickstart guides +This should have the same effect as running on a piece of hardware, as in the [ESP32](/firmware/hardware/esp32/zephyr-quickstart) or [nRF91](/firmware/hardware/nrf91/zephyr-quickstart) quickstart guides For more on networking, see [the QEMU page on the Zephyr Docs](https://docs.zephyrproject.org/latest/guides/networking/qemu_setup.html) diff --git a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/README.md b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/README.md index cc013dfc..d0965b63 100644 --- a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/README.md +++ b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/README.md @@ -1,7 +1,7 @@ --- id: overview title: Virtual Device Zephyr Quickstart -slug: /hardware/virtual-devices/zephyr-quickstart +slug: /firmware/hardware/virtual-devices/zephyr-quickstart --- :::caution diff --git a/docs/firmware/hardware/5-virtual-device/README.md b/docs/firmware/hardware/5-virtual-device/README.md index f9885ba2..af2b4e60 100644 --- a/docs/firmware/hardware/5-virtual-device/README.md +++ b/docs/firmware/hardware/5-virtual-device/README.md @@ -1,7 +1,7 @@ --- id: overview title: Virtual Devices Overview -slug: /hardware/virtual-devices +slug: /firmware/hardware/virtual-devices --- The virtual device guide shows you how to build and test your system _without diff --git a/docs/firmware/hardware/6-catalog/6-hardware-catalog.mdx b/docs/firmware/hardware/6-catalog/6-hardware-catalog.mdx index fda40bcd..7dc3957e 100644 --- a/docs/firmware/hardware/6-catalog/6-hardware-catalog.mdx +++ b/docs/firmware/hardware/6-catalog/6-hardware-catalog.mdx @@ -2,7 +2,7 @@ id: catalog title: Hardware Catalog Search hide_title: true -slug: /hardware/catalog/search +slug: /firmware/hardware/catalog/search hide_table_of_contents: true pagination_prev: null pagination_next: null @@ -175,7 +175,7 @@ export const Board = ({ board }) => { return (
diff --git a/docs/firmware/hardware/6-catalog/continuously-verified/arm_mimxrt1060_evkb.md b/docs/firmware/hardware/6-catalog/continuously-verified/arm_mimxrt1060_evkb.md index f6db372d..ab1c5c72 100644 --- a/docs/firmware/hardware/6-catalog/continuously-verified/arm_mimxrt1060_evkb.md +++ b/docs/firmware/hardware/6-catalog/continuously-verified/arm_mimxrt1060_evkb.md @@ -1,7 +1,7 @@ --- id: arm_mimxrt1060_evkb title: NXP MIMXRT1060-EVKB -slug: /hardware/catalog/boards/continuously-verified/arm_mimxrt1060_evkb +slug: /firmware/hardware/catalog/boards/continuously-verified/arm_mimxrt1060_evkb description: IoT board NXP MIMXRT1060-EVKB, compatible with Golioth at continuously-verified level. image: /img/boards/arm/mimxrt1060_evkb.jpg @@ -14,8 +14,8 @@ image: /img/boards/arm/mimxrt1060_evkb.jpg | | Board properties | | ------------- | -------------------- | | Board ID | `mimxrt1060_evkb` | -| Golioth Level | [Continuously verified](/hardware#continuously-verified-boards) | -| Golioth Quickstart | [mimxrt1060_evkb quickstart](/hardware/mimxrt1060_evkb/zephyr-quickstart) || Architecture | ARM | +| Golioth Level | [Continuously verified](/firmware/hardware#continuously-verified-boards) | +| Golioth Quickstart | [mimxrt1060_evkb quickstart](/firmware/hardware/mimxrt1060_evkb/zephyr-quickstart) || Architecture | ARM | | RAM* | 32768 kB | | Flash* | 8192 kB | @@ -23,7 +23,7 @@ image: /img/boards/arm/mimxrt1060_evkb.jpg ## Getting started -See our [quickstart guide for NXP MIMXRT1060-EVKB](/hardware/mimxrt1060_evkb/zephyr-quickstart). +See our [quickstart guide for NXP MIMXRT1060-EVKB](/firmware/hardware/mimxrt1060_evkb/zephyr-quickstart). ## Supported features diff --git a/docs/firmware/hardware/6-catalog/continuously-verified/arm_nrf9160dk_nrf9160.md b/docs/firmware/hardware/6-catalog/continuously-verified/arm_nrf9160dk_nrf9160.md index f0415f46..8074aa72 100644 --- a/docs/firmware/hardware/6-catalog/continuously-verified/arm_nrf9160dk_nrf9160.md +++ b/docs/firmware/hardware/6-catalog/continuously-verified/arm_nrf9160dk_nrf9160.md @@ -1,7 +1,7 @@ --- id: arm_nrf9160dk_nrf9160 title: nRF9160-DK-NRF9160 -slug: /hardware/catalog/boards/continuously-verified/arm_nrf9160dk_nrf9160 +slug: /firmware/hardware/catalog/boards/continuously-verified/arm_nrf9160dk_nrf9160 description: IoT board nRF9160-DK-NRF9160, compatible with Golioth at continuously-verified level. image: /img/boards/arm/nrf9160dk_nrf9160.jpg @@ -14,8 +14,8 @@ image: /img/boards/arm/nrf9160dk_nrf9160.jpg | | Board properties | | ------------- | -------------------- | | Board ID | `nrf9160dk_nrf9160` | -| Golioth Level | [Continuously verified](/hardware#continuously-verified-boards) | -| Golioth Quickstart | [nrf9160dk_nrf9160 quickstart](/hardware/nrf91/zephyr-quickstart) || Architecture | ARM | +| Golioth Level | [Continuously verified](/firmware/hardware#continuously-verified-boards) | +| Golioth Quickstart | [nrf9160dk_nrf9160 quickstart](/firmware/hardware/nrf91/zephyr-quickstart) || Architecture | ARM | | RAM* | 88 kB | | Flash* | 1024 kB | @@ -23,7 +23,7 @@ image: /img/boards/arm/nrf9160dk_nrf9160.jpg ## Getting started -See our [quickstart guide for nRF9160-DK-NRF9160](/hardware/nrf91/zephyr-quickstart). +See our [quickstart guide for nRF9160-DK-NRF9160](/firmware/hardware/nrf91/zephyr-quickstart). ## Supported features diff --git a/docs/firmware/hardware/6-catalog/continuously-verified/arm_qemu_cortex_m3.md b/docs/firmware/hardware/6-catalog/continuously-verified/arm_qemu_cortex_m3.md index ee0a4319..d6eae961 100644 --- a/docs/firmware/hardware/6-catalog/continuously-verified/arm_qemu_cortex_m3.md +++ b/docs/firmware/hardware/6-catalog/continuously-verified/arm_qemu_cortex_m3.md @@ -1,7 +1,7 @@ --- id: arm_qemu_cortex_m3 title: QEMU Emulation for Cortex-M3 -slug: /hardware/catalog/boards/continuously-verified/arm_qemu_cortex_m3 +slug: /firmware/hardware/catalog/boards/continuously-verified/arm_qemu_cortex_m3 description: IoT board QEMU Emulation for Cortex-M3, compatible with Golioth at continuously-verified level. image: /img/boards/arm/qemu_cortex_m3.jpg @@ -14,8 +14,8 @@ image: /img/boards/arm/qemu_cortex_m3.jpg | | Board properties | | ------------- | -------------------- | | Board ID | `qemu_cortex_m3` | -| Golioth Level | [Continuously verified](/hardware#continuously-verified-boards) | -| Golioth Quickstart | [qemu_cortex_m3 quickstart](/hardware/virtual-devices/zephyr-quickstart) || Architecture | ARM | +| Golioth Level | [Continuously verified](/firmware/hardware#continuously-verified-boards) | +| Golioth Quickstart | [qemu_cortex_m3 quickstart](/firmware/hardware/virtual-devices/zephyr-quickstart) || Architecture | ARM | | RAM* | 64 kB | | Flash* | 256 kB | @@ -23,7 +23,7 @@ image: /img/boards/arm/qemu_cortex_m3.jpg ## Getting started -See our [quickstart guide for QEMU Emulation for Cortex-M3](/hardware/virtual-devices/zephyr-quickstart). +See our [quickstart guide for QEMU Emulation for Cortex-M3](/firmware/hardware/virtual-devices/zephyr-quickstart). ## Supported features diff --git a/docs/firmware/hardware/6-catalog/continuously-verified/xtensa_esp32.md b/docs/firmware/hardware/6-catalog/continuously-verified/xtensa_esp32.md index 1b3765c4..b1033001 100644 --- a/docs/firmware/hardware/6-catalog/continuously-verified/xtensa_esp32.md +++ b/docs/firmware/hardware/6-catalog/continuously-verified/xtensa_esp32.md @@ -1,7 +1,7 @@ --- id: xtensa_esp32 title: esp32 -slug: /hardware/catalog/boards/continuously-verified/xtensa_esp32 +slug: /firmware/hardware/catalog/boards/continuously-verified/xtensa_esp32 description: IoT board esp32, compatible with Golioth at continuously-verified level. image: /img/boards/xtensa/esp32.jpg @@ -14,8 +14,8 @@ image: /img/boards/xtensa/esp32.jpg | | Board properties | | ------------- | -------------------- | | Board ID | `esp32` | -| Golioth Level | [Continuously verified](/hardware#continuously-verified-boards) | -| Golioth Quickstart | [esp32 quickstart](/hardware/esp32/zephyr-quickstart) || Architecture | XTENSA | +| Golioth Level | [Continuously verified](/firmware/hardware#continuously-verified-boards) | +| Golioth Quickstart | [esp32 quickstart](/firmware/hardware/esp32/zephyr-quickstart) || Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | @@ -23,7 +23,7 @@ image: /img/boards/xtensa/esp32.jpg ## Getting started -See our [quickstart guide for esp32](/hardware/esp32/zephyr-quickstart). +See our [quickstart guide for esp32](/firmware/hardware/esp32/zephyr-quickstart). ## Supported features diff --git a/docs/firmware/hardware/6-catalog/unverified/arc_em_starterkit.md b/docs/firmware/hardware/6-catalog/unverified/arc_em_starterkit.md index 694f0eb1..83a6860e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arc_em_starterkit.md +++ b/docs/firmware/hardware/6-catalog/unverified/arc_em_starterkit.md @@ -1,7 +1,7 @@ --- id: arc_em_starterkit title: EM Starterkit -slug: /hardware/catalog/boards/unverified/arc_em_starterkit +slug: /firmware/hardware/catalog/boards/unverified/arc_em_starterkit description: IoT board EM Starterkit, compatible with Golioth at unverified level. image: /img/boards/arc/em_starterkit.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `em_starterkit` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARC | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arc_emsdp.md b/docs/firmware/hardware/6-catalog/unverified/arc_emsdp.md index e3455f82..607167c0 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arc_emsdp.md +++ b/docs/firmware/hardware/6-catalog/unverified/arc_emsdp.md @@ -1,7 +1,7 @@ --- id: arc_emsdp title: EM Software Development Platform -slug: /hardware/catalog/boards/unverified/arc_emsdp +slug: /firmware/hardware/catalog/boards/unverified/arc_emsdp description: IoT board EM Software Development Platform, compatible with Golioth at unverified level. image: /img/boards/arc/emsdp.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `emsdp` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARC | | RAM* | 128 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arc_hsdk.md b/docs/firmware/hardware/6-catalog/unverified/arc_hsdk.md index 34366a67..30214382 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arc_hsdk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arc_hsdk.md @@ -1,7 +1,7 @@ --- id: arc_hsdk title: HS Development Kit -slug: /hardware/catalog/boards/unverified/arc_hsdk +slug: /firmware/hardware/catalog/boards/unverified/arc_hsdk description: IoT board HS Development Kit, compatible with Golioth at unverified level. image: /img/boards/arc/hsdk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `hsdk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARC | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arc_hsdk4xd.md b/docs/firmware/hardware/6-catalog/unverified/arc_hsdk4xd.md index f91641f1..e1eefc32 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arc_hsdk4xd.md +++ b/docs/firmware/hardware/6-catalog/unverified/arc_hsdk4xd.md @@ -1,7 +1,7 @@ --- id: arc_hsdk4xd title: HS4xD Development Kit -slug: /hardware/catalog/boards/unverified/arc_hsdk4xd +slug: /firmware/hardware/catalog/boards/unverified/arc_hsdk4xd description: IoT board HS4xD Development Kit, compatible with Golioth at unverified level. image: /img/boards/arc/hsdk4xd.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `hsdk4xd` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARC | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arc_iotdk.md b/docs/firmware/hardware/6-catalog/unverified/arc_iotdk.md index 9e32eb3a..69f8b57b 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arc_iotdk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arc_iotdk.md @@ -1,7 +1,7 @@ --- id: arc_iotdk title: IoT Development Kit -slug: /hardware/catalog/boards/unverified/arc_iotdk +slug: /firmware/hardware/catalog/boards/unverified/arc_iotdk description: IoT board IoT Development Kit, compatible with Golioth at unverified level. image: /img/boards/arc/iotdk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `iotdk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARC | | RAM* | 128 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arc_nsim.md b/docs/firmware/hardware/6-catalog/unverified/arc_nsim.md index 928cb2ec..40df9293 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arc_nsim.md +++ b/docs/firmware/hardware/6-catalog/unverified/arc_nsim.md @@ -1,7 +1,7 @@ --- id: arc_nsim title: nsim -slug: /hardware/catalog/boards/unverified/arc_nsim +slug: /firmware/hardware/catalog/boards/unverified/arc_nsim description: IoT board nsim, compatible with Golioth at unverified level. image: /img/boards/arc/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nsim` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARC | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arc_qemu_arc.md b/docs/firmware/hardware/6-catalog/unverified/arc_qemu_arc.md index 867f738d..5a78277f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arc_qemu_arc.md +++ b/docs/firmware/hardware/6-catalog/unverified/arc_qemu_arc.md @@ -1,7 +1,7 @@ --- id: arc_qemu_arc title: qemu_arc -slug: /hardware/catalog/boards/unverified/arc_qemu_arc +slug: /firmware/hardware/catalog/boards/unverified/arc_qemu_arc description: IoT board qemu_arc, compatible with Golioth at unverified level. image: /img/boards/arc/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `qemu_arc` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARC | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_bcm958402m2_a72.md b/docs/firmware/hardware/6-catalog/unverified/arm64_bcm958402m2_a72.md index 76127b08..d8ff1a23 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_bcm958402m2_a72.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_bcm958402m2_a72.md @@ -1,7 +1,7 @@ --- id: arm64_bcm958402m2_a72 title: Broadcom BCM958402M2_A72 -slug: /hardware/catalog/boards/unverified/arm64_bcm958402m2_a72 +slug: /firmware/hardware/catalog/boards/unverified/arm64_bcm958402m2_a72 description: IoT board Broadcom BCM958402M2_A72, compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `bcm958402m2_a72` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_fvp_base_revc_2xaemv8a.md b/docs/firmware/hardware/6-catalog/unverified/arm64_fvp_base_revc_2xaemv8a.md index e75e61c4..7b336c4f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_fvp_base_revc_2xaemv8a.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_fvp_base_revc_2xaemv8a.md @@ -1,7 +1,7 @@ --- id: arm64_fvp_base_revc_2xaemv8a title: FVP Emulation FVP_Base_RevC-2xAEMvA -slug: /hardware/catalog/boards/unverified/arm64_fvp_base_revc_2xaemv8a +slug: /firmware/hardware/catalog/boards/unverified/arm64_fvp_base_revc_2xaemv8a description: IoT board FVP Emulation FVP_Base_RevC-2xAEMvA, compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `fvp_base_revc_2xaemv8a` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | 2048 kB | | Flash* | 64 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_fvp_baser_aemv8r.md b/docs/firmware/hardware/6-catalog/unverified/arm64_fvp_baser_aemv8r.md index 20493341..40ef7b68 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_fvp_baser_aemv8r.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_fvp_baser_aemv8r.md @@ -1,7 +1,7 @@ --- id: arm64_fvp_baser_aemv8r title: FVP Emulation FVP_BaseR_AEMv8R -slug: /hardware/catalog/boards/unverified/arm64_fvp_baser_aemv8r +slug: /firmware/hardware/catalog/boards/unverified/arm64_fvp_baser_aemv8r description: IoT board FVP Emulation FVP_BaseR_AEMv8R, compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `fvp_baser_aemv8r` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | 2048 kB | | Flash* | 64 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex5_socdk.md b/docs/firmware/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex5_socdk.md index 3c7440fd..cba461fd 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex5_socdk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex5_socdk.md @@ -1,7 +1,7 @@ --- id: arm64_intel_socfpga_agilex5_socdk title: Intel SoC FPGA Agilex5 -slug: /hardware/catalog/boards/unverified/arm64_intel_socfpga_agilex5_socdk +slug: /firmware/hardware/catalog/boards/unverified/arm64_intel_socfpga_agilex5_socdk description: IoT board Intel SoC FPGA Agilex5, compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `intel_socfpga_agilex5_socdk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex_socdk.md b/docs/firmware/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex_socdk.md index 0f8f4fbe..36d9a9a3 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex_socdk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_intel_socfpga_agilex_socdk.md @@ -1,7 +1,7 @@ --- id: arm64_intel_socfpga_agilex_socdk title: Intel SoC FPGA Agilex -slug: /hardware/catalog/boards/unverified/arm64_intel_socfpga_agilex_socdk +slug: /firmware/hardware/catalog/boards/unverified/arm64_intel_socfpga_agilex_socdk description: IoT board Intel SoC FPGA Agilex, compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `intel_socfpga_agilex_socdk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_khadas_edgev.md b/docs/firmware/hardware/6-catalog/unverified/arm64_khadas_edgev.md index 4f3efad4..38b6622d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_khadas_edgev.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_khadas_edgev.md @@ -1,7 +1,7 @@ --- id: arm64_khadas_edgev title: Khadas Edge-V (single core, non SMP) -slug: /hardware/catalog/boards/unverified/arm64_khadas_edgev +slug: /firmware/hardware/catalog/boards/unverified/arm64_khadas_edgev description: IoT board Khadas Edge-V (single core, non SMP), compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `khadas_edgev` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | 8192 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mm_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mm_evk.md index a802b591..07b42724 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mm_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mm_evk.md @@ -1,7 +1,7 @@ --- id: arm64_mimx8mm_evk title: mimx8mm_evk -slug: /hardware/catalog/boards/unverified/arm64_mimx8mm_evk +slug: /firmware/hardware/catalog/boards/unverified/arm64_mimx8mm_evk description: IoT board mimx8mm_evk, compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimx8mm_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mn_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mn_evk.md index 60c21975..77472a34 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mn_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mn_evk.md @@ -1,7 +1,7 @@ --- id: arm64_mimx8mn_evk title: mimx8mn_evk -slug: /hardware/catalog/boards/unverified/arm64_mimx8mn_evk +slug: /firmware/hardware/catalog/boards/unverified/arm64_mimx8mn_evk description: IoT board mimx8mn_evk, compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimx8mn_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mp_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mp_evk.md index 39baf9e0..bc8c2be8 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mp_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_mimx8mp_evk.md @@ -1,7 +1,7 @@ --- id: arm64_mimx8mp_evk title: mimx8mp_evk -slug: /hardware/catalog/boards/unverified/arm64_mimx8mp_evk +slug: /firmware/hardware/catalog/boards/unverified/arm64_mimx8mp_evk description: IoT board mimx8mp_evk, compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimx8mp_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_mimx93_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm64_mimx93_evk.md index 4e636c34..19821834 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_mimx93_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_mimx93_evk.md @@ -1,7 +1,7 @@ --- id: arm64_mimx93_evk title: mimx93_evk -slug: /hardware/catalog/boards/unverified/arm64_mimx93_evk +slug: /firmware/hardware/catalog/boards/unverified/arm64_mimx93_evk description: IoT board mimx93_evk, compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimx93_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_nxp_ls1046ardb.md b/docs/firmware/hardware/6-catalog/unverified/arm64_nxp_ls1046ardb.md index d85dc686..1aa290bd 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_nxp_ls1046ardb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_nxp_ls1046ardb.md @@ -1,7 +1,7 @@ --- id: arm64_nxp_ls1046ardb title: NXP LS1046ARDB on single CPU Core (NON-SMP) -slug: /hardware/catalog/boards/unverified/arm64_nxp_ls1046ardb +slug: /firmware/hardware/catalog/boards/unverified/arm64_nxp_ls1046ardb description: IoT board NXP LS1046ARDB on single CPU Core (NON-SMP), compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nxp_ls1046ardb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | 1024 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_phycore_am62x_a53.md b/docs/firmware/hardware/6-catalog/unverified/arm64_phycore_am62x_a53.md index 4891cb73..327cfab7 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_phycore_am62x_a53.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_phycore_am62x_a53.md @@ -1,7 +1,7 @@ --- id: arm64_phycore_am62x_a53 title: PHYTEC phyCORE-AM62x A53 -slug: /hardware/catalog/boards/unverified/arm64_phycore_am62x_a53 +slug: /firmware/hardware/catalog/boards/unverified/arm64_phycore_am62x_a53 description: IoT board PHYTEC phyCORE-AM62x A53, compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `phycore_am62x_a53` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | 1024 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_qemu_cortex_a53.md b/docs/firmware/hardware/6-catalog/unverified/arm64_qemu_cortex_a53.md index 48b239d4..251616ef 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_qemu_cortex_a53.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_qemu_cortex_a53.md @@ -1,7 +1,7 @@ --- id: arm64_qemu_cortex_a53 title: QEMU Emulation for Cortex-A53 -slug: /hardware/catalog/boards/unverified/arm64_qemu_cortex_a53 +slug: /firmware/hardware/catalog/boards/unverified/arm64_qemu_cortex_a53 description: IoT board QEMU Emulation for Cortex-A53, compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `qemu_cortex_a53` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | 128 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_qemu_kvm_arm64.md b/docs/firmware/hardware/6-catalog/unverified/arm64_qemu_kvm_arm64.md index 41873dae..623170e4 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_qemu_kvm_arm64.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_qemu_kvm_arm64.md @@ -1,7 +1,7 @@ --- id: arm64_qemu_kvm_arm64 title: QEMU Virt Emulation for AArch64 KVM -slug: /hardware/catalog/boards/unverified/arm64_qemu_kvm_arm64 +slug: /firmware/hardware/catalog/boards/unverified/arm64_qemu_kvm_arm64 description: IoT board QEMU Virt Emulation for AArch64 KVM, compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `qemu_kvm_arm64` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | 128 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_rcar_h3ulcb_ca57.md b/docs/firmware/hardware/6-catalog/unverified/arm64_rcar_h3ulcb_ca57.md index ad06a3ac..b791821d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_rcar_h3ulcb_ca57.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_rcar_h3ulcb_ca57.md @@ -1,7 +1,7 @@ --- id: arm64_rcar_h3ulcb_ca57 title: Renesas H3ULCB based on r8a77951 -slug: /hardware/catalog/boards/unverified/arm64_rcar_h3ulcb_ca57 +slug: /firmware/hardware/catalog/boards/unverified/arm64_rcar_h3ulcb_ca57 description: IoT board Renesas H3ULCB based on r8a77951, compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `rcar_h3ulcb_ca57` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | 512 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_rcar_salvator_xs_m3.md b/docs/firmware/hardware/6-catalog/unverified/arm64_rcar_salvator_xs_m3.md index 6b0ddcb6..e5d56f85 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_rcar_salvator_xs_m3.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_rcar_salvator_xs_m3.md @@ -1,7 +1,7 @@ --- id: arm64_rcar_salvator_xs_m3 title: Renesas Salvator XS M3 based on r8a77961 -slug: /hardware/catalog/boards/unverified/arm64_rcar_salvator_xs_m3 +slug: /firmware/hardware/catalog/boards/unverified/arm64_rcar_salvator_xs_m3 description: IoT board Renesas Salvator XS M3 based on r8a77961, compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `rcar_salvator_xs_m3` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | 512 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_roc_rk3568_pc.md b/docs/firmware/hardware/6-catalog/unverified/arm64_roc_rk3568_pc.md new file mode 100644 index 00000000..d6f74a00 --- /dev/null +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_roc_rk3568_pc.md @@ -0,0 +1,37 @@ +--- +id: arm64_roc_rk3568_pc +title: Rockchip ROC RK3568 PC +slug: /firmware/hardware/catalog/boards/unverified/arm64_roc_rk3568_pc +description: IoT board Rockchip ROC RK3568 PC, compatible with Golioth at unverified level. +image: /img/boards/arm64/null +sidebar_class_name: hide-item +--- + +[//]: # (This is an auto-generated file, do not edit! Changes to it will be lost upon re-generation) + + + +| | Board properties | +| ------------- | -------------------- | +| Board ID | `roc_rk3568_pc` | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | +| Architecture | ARM64 | +| RAM* | 1024 kB | +| Flash* | N/A | + +\* values are as reported by Zephyr `.yaml` board files, which don't represent the overall available resources + + + +## Supported features + +List of supported features is not available. + +## Supported toolchains + +* zephyr +* cross-compile + +## Official Zephyr docs + +[Rockchip ROC RK3568 PC (roc_rk3568_pc)](https://docs.zephyrproject.org/latest/boards/arm64/roc_rk3568_pc/doc/index.html) diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_rpi_4b.md b/docs/firmware/hardware/6-catalog/unverified/arm64_rpi_4b.md index 0be12410..26822c9a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_rpi_4b.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_rpi_4b.md @@ -1,7 +1,7 @@ --- id: arm64_rpi_4b title: Raspberry Pi 4 Model B -slug: /hardware/catalog/boards/unverified/arm64_rpi_4b +slug: /firmware/hardware/catalog/boards/unverified/arm64_rpi_4b description: IoT board Raspberry Pi 4 Model B, compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `rpi_4b` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm64_xenvm.md b/docs/firmware/hardware/6-catalog/unverified/arm64_xenvm.md index b372f97c..2eba7ac1 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm64_xenvm.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm64_xenvm.md @@ -1,7 +1,7 @@ --- id: arm64_xenvm title: ARMv8 Xen Virtual Machine -slug: /hardware/catalog/boards/unverified/arm64_xenvm +slug: /firmware/hardware/catalog/boards/unverified/arm64_xenvm description: IoT board ARMv8 Xen Virtual Machine, compatible with Golioth at unverified level. image: /img/boards/arm64/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `xenvm` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM64 | | RAM* | 16384 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_96b_aerocore2.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_aerocore2.md index 82e81600..63a35be7 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_96b_aerocore2.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_96b_aerocore2.md @@ -1,7 +1,7 @@ --- id: arm_96b_aerocore2 title: 96Boards AeroCore 2 -slug: /hardware/catalog/boards/unverified/arm_96b_aerocore2 +slug: /firmware/hardware/catalog/boards/unverified/arm_96b_aerocore2 description: IoT board 96Boards AeroCore 2, compatible with Golioth at unverified level. image: /img/boards/arm/96b_aerocore2.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `96b_aerocore2` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_96b_argonkey.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_argonkey.md index 9e0841f4..aadf7a94 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_96b_argonkey.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_96b_argonkey.md @@ -1,7 +1,7 @@ --- id: arm_96b_argonkey title: 96Boards Argonkey -slug: /hardware/catalog/boards/unverified/arm_96b_argonkey +slug: /firmware/hardware/catalog/boards/unverified/arm_96b_argonkey description: IoT board 96Boards Argonkey, compatible with Golioth at unverified level. image: /img/boards/arm/96b_argonkey.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `96b_argonkey` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_96b_avenger96.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_avenger96.md index 044c7eb4..f7bfd648 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_96b_avenger96.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_96b_avenger96.md @@ -1,7 +1,7 @@ --- id: arm_96b_avenger96 title: 96Boards Avenger96 -slug: /hardware/catalog/boards/unverified/arm_96b_avenger96 +slug: /firmware/hardware/catalog/boards/unverified/arm_96b_avenger96 description: IoT board 96Boards Avenger96, compatible with Golioth at unverified level. image: /img/boards/arm/96b_avenger96.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `96b_avenger96` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 64 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_96b_carbon.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_carbon.md index 0f3b499e..f6edb659 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_96b_carbon.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_96b_carbon.md @@ -1,7 +1,7 @@ --- id: arm_96b_carbon title: 96Boards Carbon -slug: /hardware/catalog/boards/unverified/arm_96b_carbon +slug: /firmware/hardware/catalog/boards/unverified/arm_96b_carbon description: IoT board 96Boards Carbon, compatible with Golioth at unverified level. image: /img/boards/arm/96b_carbon.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `96b_carbon` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 96 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_96b_carbon_nrf51.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_carbon_nrf51.md index a8cf6043..cbe62d36 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_96b_carbon_nrf51.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_96b_carbon_nrf51.md @@ -1,7 +1,7 @@ --- id: arm_96b_carbon_nrf51 title: 96Boards Carbon (nRF51) -slug: /hardware/catalog/boards/unverified/arm_96b_carbon_nrf51 +slug: /firmware/hardware/catalog/boards/unverified/arm_96b_carbon_nrf51 description: IoT board 96Boards Carbon (nRF51), compatible with Golioth at unverified level. image: /img/boards/arm/96b_carbon_nrf51.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `96b_carbon_nrf51` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_96b_meerkat96.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_meerkat96.md index 1c9bcd5e..2fa0a6d4 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_96b_meerkat96.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_96b_meerkat96.md @@ -1,7 +1,7 @@ --- id: arm_96b_meerkat96 title: 96Boards Meerkat96 -slug: /hardware/catalog/boards/unverified/arm_96b_meerkat96 +slug: /firmware/hardware/catalog/boards/unverified/arm_96b_meerkat96 description: IoT board 96Boards Meerkat96, compatible with Golioth at unverified level. image: /img/boards/arm/96b_meerkat96.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `96b_meerkat96` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 32 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_96b_neonkey.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_neonkey.md index b67ed2a9..c03314e2 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_96b_neonkey.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_96b_neonkey.md @@ -1,7 +1,7 @@ --- id: arm_96b_neonkey title: 96Boards Neonkey -slug: /hardware/catalog/boards/unverified/arm_96b_neonkey +slug: /firmware/hardware/catalog/boards/unverified/arm_96b_neonkey description: IoT board 96Boards Neonkey, compatible with Golioth at unverified level. image: /img/boards/arm/96b_neonkey.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `96b_neonkey` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_96b_nitrogen.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_nitrogen.md index da7697fc..244a2cf6 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_96b_nitrogen.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_96b_nitrogen.md @@ -1,7 +1,7 @@ --- id: arm_96b_nitrogen title: 96Boards Nitrogen -slug: /hardware/catalog/boards/unverified/arm_96b_nitrogen +slug: /firmware/hardware/catalog/boards/unverified/arm_96b_nitrogen description: IoT board 96Boards Nitrogen, compatible with Golioth at unverified level. image: /img/boards/arm/96b_nitrogen.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `96b_nitrogen` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_96b_stm32_sensor_mez.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_stm32_sensor_mez.md index 372539f1..3c3ceec8 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_96b_stm32_sensor_mez.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_96b_stm32_sensor_mez.md @@ -1,7 +1,7 @@ --- id: arm_96b_stm32_sensor_mez title: 96Boards STM32 Sensor Mezzanine -slug: /hardware/catalog/boards/unverified/arm_96b_stm32_sensor_mez +slug: /firmware/hardware/catalog/boards/unverified/arm_96b_stm32_sensor_mez description: IoT board 96Boards STM32 Sensor Mezzanine, compatible with Golioth at unverified level. image: /img/boards/arm/96b_stm32_sensor_mez.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `96b_stm32_sensor_mez` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_96b_wistrio.md b/docs/firmware/hardware/6-catalog/unverified/arm_96b_wistrio.md index 74213a85..671d6ec2 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_96b_wistrio.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_96b_wistrio.md @@ -1,7 +1,7 @@ --- id: arm_96b_wistrio title: 96boards WisTrio -slug: /hardware/catalog/boards/unverified/arm_96b_wistrio +slug: /firmware/hardware/catalog/boards/unverified/arm_96b_wistrio description: IoT board 96boards WisTrio, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `96b_wistrio` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 16 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_acn52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_acn52832.md index 977f4fef..057bcd88 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_acn52832.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_acn52832.md @@ -1,7 +1,7 @@ --- id: arm_acn52832 title: aconno acn52832 -slug: /hardware/catalog/boards/unverified/arm_acn52832 +slug: /firmware/hardware/catalog/boards/unverified/arm_acn52832 description: IoT board aconno acn52832, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `acn52832` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus.md b/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus.md index ac8d6557..24b7daff 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus.md @@ -1,7 +1,7 @@ --- id: arm_actinius_icarus title: Actinius Icarus -slug: /hardware/catalog/boards/unverified/arm_actinius_icarus +slug: /firmware/hardware/catalog/boards/unverified/arm_actinius_icarus description: IoT board Actinius Icarus, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `actinius_icarus` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 88 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_bee.md b/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_bee.md index 546db46f..4490640b 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_bee.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_bee.md @@ -1,7 +1,7 @@ --- id: arm_actinius_icarus_bee title: Actinius Icarus Bee -slug: /hardware/catalog/boards/unverified/arm_actinius_icarus_bee +slug: /firmware/hardware/catalog/boards/unverified/arm_actinius_icarus_bee description: IoT board Actinius Icarus Bee, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `actinius_icarus_bee` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 88 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_som.md b/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_som.md index 4b49c167..7a1b2f51 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_som.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_som.md @@ -1,7 +1,7 @@ --- id: arm_actinius_icarus_som title: Actinius Icarus SoM -slug: /hardware/catalog/boards/unverified/arm_actinius_icarus_som +slug: /firmware/hardware/catalog/boards/unverified/arm_actinius_icarus_som description: IoT board Actinius Icarus SoM, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `actinius_icarus_som` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 88 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_som_dk.md b/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_som_dk.md index ede2c0c9..32a5240b 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_som_dk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_actinius_icarus_som_dk.md @@ -1,7 +1,7 @@ --- id: arm_actinius_icarus_som_dk title: Actinius Icarus SoM DK -slug: /hardware/catalog/boards/unverified/arm_actinius_icarus_som_dk +slug: /firmware/hardware/catalog/boards/unverified/arm_actinius_icarus_som_dk description: IoT board Actinius Icarus SoM DK, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `actinius_icarus_som_dk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 88 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_m0_basic_proto.md b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_m0_basic_proto.md index 646be9ac..c9476e24 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_m0_basic_proto.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_m0_basic_proto.md @@ -1,7 +1,7 @@ --- id: arm_adafruit_feather_m0_basic_proto title: Adafruit Feather M0 Basic Proto -slug: /hardware/catalog/boards/unverified/arm_adafruit_feather_m0_basic_proto +slug: /firmware/hardware/catalog/boards/unverified/arm_adafruit_feather_m0_basic_proto description: IoT board Adafruit Feather M0 Basic Proto, compatible with Golioth at unverified level. image: /img/boards/arm/adafruit_feather_m0_basic_proto.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `adafruit_feather_m0_basic_proto` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 232 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_m0_lora.md b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_m0_lora.md index f3613647..5513832e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_m0_lora.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_m0_lora.md @@ -1,7 +1,7 @@ --- id: arm_adafruit_feather_m0_lora title: Adafruit Feather M0 LoRa -slug: /hardware/catalog/boards/unverified/arm_adafruit_feather_m0_lora +slug: /firmware/hardware/catalog/boards/unverified/arm_adafruit_feather_m0_lora description: IoT board Adafruit Feather M0 LoRa, compatible with Golioth at unverified level. image: /img/boards/arm/adafruit_feather_m0_lora.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `adafruit_feather_m0_lora` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 232 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_nrf52840.md index b74e9150..a61d6127 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_nrf52840.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_nrf52840.md @@ -1,7 +1,7 @@ --- id: arm_adafruit_feather_nrf52840 title: Adafruit Feather nRF52840 Express -slug: /hardware/catalog/boards/unverified/arm_adafruit_feather_nrf52840 +slug: /firmware/hardware/catalog/boards/unverified/arm_adafruit_feather_nrf52840 description: IoT board Adafruit Feather nRF52840 Express, compatible with Golioth at unverified level. image: /img/boards/arm/adafruit_feather_nrf52840.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `adafruit_feather_nrf52840` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_stm32f405.md b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_stm32f405.md index bffa56e3..ef37eb13 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_stm32f405.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_feather_stm32f405.md @@ -1,7 +1,7 @@ --- id: arm_adafruit_feather_stm32f405 title: Adafruit Feather STM32F405 Express -slug: /hardware/catalog/boards/unverified/arm_adafruit_feather_stm32f405 +slug: /firmware/hardware/catalog/boards/unverified/arm_adafruit_feather_stm32f405 description: IoT board Adafruit Feather STM32F405 Express, compatible with Golioth at unverified level. image: /img/boards/arm/adafruit_feather_stm32f405.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `adafruit_feather_stm32f405` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_m4_express.md b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_m4_express.md index 85903fa0..77a6fdc3 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_m4_express.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_m4_express.md @@ -1,7 +1,7 @@ --- id: arm_adafruit_itsybitsy_m4_express title: Adafruit ItsyBitsy M4 Express -slug: /hardware/catalog/boards/unverified/arm_adafruit_itsybitsy_m4_express +slug: /firmware/hardware/catalog/boards/unverified/arm_adafruit_itsybitsy_m4_express description: IoT board Adafruit ItsyBitsy M4 Express, compatible with Golioth at unverified level. image: /img/boards/arm/adafruit_itsybitsy_m4_express.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `adafruit_itsybitsy_m4_express` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 192 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_nrf52840.md index 20aebcab..a7fb62e0 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_nrf52840.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_itsybitsy_nrf52840.md @@ -1,7 +1,7 @@ --- id: arm_adafruit_itsybitsy_nrf52840 title: Adafruit ItsyBitsy nRF52840 Express -slug: /hardware/catalog/boards/unverified/arm_adafruit_itsybitsy_nrf52840 +slug: /firmware/hardware/catalog/boards/unverified/arm_adafruit_itsybitsy_nrf52840 description: IoT board Adafruit ItsyBitsy nRF52840 Express, compatible with Golioth at unverified level. image: /img/boards/arm/adafruit_itsybitsy_nrf52840.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `adafruit_itsybitsy_nrf52840` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_kb2040.md b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_kb2040.md index 66b20cef..b1c9911d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_kb2040.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_kb2040.md @@ -1,7 +1,7 @@ --- id: arm_adafruit_kb2040 title: Adafruit KB2040 -slug: /hardware/catalog/boards/unverified/arm_adafruit_kb2040 +slug: /firmware/hardware/catalog/boards/unverified/arm_adafruit_kb2040 description: IoT board Adafruit KB2040, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `adafruit_kb2040` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 264 kB | | Flash* | 8192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_trinket_m0.md b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_trinket_m0.md index 3bb3086c..236d628e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_trinket_m0.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_adafruit_trinket_m0.md @@ -1,7 +1,7 @@ --- id: arm_adafruit_trinket_m0 title: Adafruit Trinket M0 -slug: /hardware/catalog/boards/unverified/arm_adafruit_trinket_m0 +slug: /firmware/hardware/catalog/boards/unverified/arm_adafruit_trinket_m0 description: IoT board Adafruit Trinket M0, compatible with Golioth at unverified level. image: /img/boards/arm/adafruit_trinket_m0.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `adafruit_trinket_m0` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_am62x_m4.md b/docs/firmware/hardware/6-catalog/unverified/arm_am62x_m4.md index 3666a4ac..2dbe1951 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_am62x_m4.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_am62x_m4.md @@ -1,7 +1,7 @@ --- id: arm_am62x_m4 title: am62x_m4 -slug: /hardware/catalog/boards/unverified/arm_am62x_m4 +slug: /firmware/hardware/catalog/boards/unverified/arm_am62x_m4 description: IoT board am62x_m4, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `am62x_m4` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_apollo4p_blue_kxr_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_apollo4p_blue_kxr_evb.md index 385fe6d3..f590d648 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_apollo4p_blue_kxr_evb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_apollo4p_blue_kxr_evb.md @@ -1,7 +1,7 @@ --- id: arm_apollo4p_blue_kxr_evb title: Apollo4 Blue Plus KXR EVB -slug: /hardware/catalog/boards/unverified/arm_apollo4p_blue_kxr_evb +slug: /firmware/hardware/catalog/boards/unverified/arm_apollo4p_blue_kxr_evb description: IoT board Apollo4 Blue Plus KXR EVB, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `apollo4p_blue_kxr_evb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 2816 kB | | Flash* | 1952 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_apollo4p_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_apollo4p_evb.md index ba31a7eb..8b6e067d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_apollo4p_evb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_apollo4p_evb.md @@ -1,7 +1,7 @@ --- id: arm_apollo4p_evb title: Apollo4P EVB -slug: /hardware/catalog/boards/unverified/arm_apollo4p_evb +slug: /firmware/hardware/catalog/boards/unverified/arm_apollo4p_evb description: IoT board Apollo4P EVB, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `apollo4p_evb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 2816 kB | | Flash* | 1952 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_arduino_due.md b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_due.md index f2883ebd..bc3795fc 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_arduino_due.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_due.md @@ -1,7 +1,7 @@ --- id: arm_arduino_due title: Arduino Due -slug: /hardware/catalog/boards/unverified/arm_arduino_due +slug: /firmware/hardware/catalog/boards/unverified/arm_arduino_due description: IoT board Arduino Due, compatible with Golioth at unverified level. image: /img/boards/arm/arduino_due.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `arduino_due` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 96 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_arduino_giga_r1.md b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_giga_r1.md index 494e1e82..5cc00315 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_arduino_giga_r1.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_giga_r1.md @@ -1,7 +1,7 @@ --- id: arm_arduino_giga_r1 title: arduino_giga_r1 -slug: /hardware/catalog/boards/unverified/arm_arduino_giga_r1 +slug: /firmware/hardware/catalog/boards/unverified/arm_arduino_giga_r1 description: IoT board arduino_giga_r1, compatible with Golioth at unverified level. image: /img/boards/arm/arduino_giga_r1.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `arduino_giga_r1` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_arduino_mkrzero.md b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_mkrzero.md index 48ae46ec..3b9a4015 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_arduino_mkrzero.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_mkrzero.md @@ -1,7 +1,7 @@ --- id: arm_arduino_mkrzero title: Arduino MKRZERO -slug: /hardware/catalog/boards/unverified/arm_arduino_mkrzero +slug: /firmware/hardware/catalog/boards/unverified/arm_arduino_mkrzero description: IoT board Arduino MKRZERO, compatible with Golioth at unverified level. image: /img/boards/arm/arduino_mkrzero.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `arduino_mkrzero` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_arduino_nano_33_ble.md b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_nano_33_ble.md index be8b172c..081b297d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_arduino_nano_33_ble.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_nano_33_ble.md @@ -1,7 +1,7 @@ --- id: arm_arduino_nano_33_ble title: Arduino Nano 33 BLE -slug: /hardware/catalog/boards/unverified/arm_arduino_nano_33_ble +slug: /firmware/hardware/catalog/boards/unverified/arm_arduino_nano_33_ble description: IoT board Arduino Nano 33 BLE, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `arduino_nano_33_ble` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_arduino_nano_33_iot.md b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_nano_33_iot.md index 37330a85..fbe1e5d6 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_arduino_nano_33_iot.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_nano_33_iot.md @@ -1,7 +1,7 @@ --- id: arm_arduino_nano_33_iot title: Arduino Nano 33 IOT -slug: /hardware/catalog/boards/unverified/arm_arduino_nano_33_iot +slug: /firmware/hardware/catalog/boards/unverified/arm_arduino_nano_33_iot description: IoT board Arduino Nano 33 IOT, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `arduino_nano_33_iot` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_arduino_nicla_sense_me.md b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_nicla_sense_me.md index af3db8ef..2b71c343 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_arduino_nicla_sense_me.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_nicla_sense_me.md @@ -1,7 +1,7 @@ --- id: arm_arduino_nicla_sense_me title: Arduino Nicla Sense ME -slug: /hardware/catalog/boards/unverified/arm_arduino_nicla_sense_me +slug: /firmware/hardware/catalog/boards/unverified/arm_arduino_nicla_sense_me description: IoT board Arduino Nicla Sense ME, compatible with Golioth at unverified level. image: /img/boards/arm/arduino_nicla_sense_me.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `arduino_nicla_sense_me` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_arduino_portenta_h7.md b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_portenta_h7.md index 4a18d55f..1adf05d3 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_arduino_portenta_h7.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_portenta_h7.md @@ -1,7 +1,7 @@ --- id: arm_arduino_portenta_h7 title: arduino_portenta_h7 -slug: /hardware/catalog/boards/unverified/arm_arduino_portenta_h7 +slug: /firmware/hardware/catalog/boards/unverified/arm_arduino_portenta_h7 description: IoT board arduino_portenta_h7, compatible with Golioth at unverified level. image: /img/boards/arm/arduino_portenta_h7.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `arduino_portenta_h7` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_arduino_uno_r4.md b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_uno_r4.md new file mode 100644 index 00000000..c377fe2d --- /dev/null +++ b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_uno_r4.md @@ -0,0 +1,36 @@ +--- +id: arm_arduino_uno_r4 +title: arduino_uno_r4 +slug: /firmware/hardware/catalog/boards/unverified/arm_arduino_uno_r4 +description: IoT board arduino_uno_r4, compatible with Golioth at unverified level. +image: /img/boards/arm/null +sidebar_class_name: hide-item +--- + +[//]: # (This is an auto-generated file, do not edit! Changes to it will be lost upon re-generation) + + + +| | Board properties | +| ------------- | -------------------- | +| Board ID | `arduino_uno_r4` | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | +| Architecture | ARM | +| RAM* | N/A | +| Flash* | N/A | + +\* values are as reported by Zephyr `.yaml` board files, which don't represent the overall available resources + + + +## Supported features + +List of supported features is not available. + +## Supported toolchains + +List of supported toolchains is not available. + +## Official Zephyr docs + +[arduino_uno_r4 (arduino_uno_r4)](https://docs.zephyrproject.org/latest/boards/arm/arduino_uno_r4/doc/index.html) diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_arduino_zero.md b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_zero.md index 50be9ea5..e9aa3d36 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_arduino_zero.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_arduino_zero.md @@ -1,7 +1,7 @@ --- id: arm_arduino_zero title: Arduino Zero -slug: /hardware/catalog/boards/unverified/arm_arduino_zero +slug: /firmware/hardware/catalog/boards/unverified/arm_arduino_zero description: IoT board Arduino Zero, compatible with Golioth at unverified level. image: /img/boards/arm/arduino_zero.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `arduino_zero` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_arty.md b/docs/firmware/hardware/6-catalog/unverified/arm_arty.md index f31896f4..61a92524 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_arty.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_arty.md @@ -1,7 +1,7 @@ --- id: arm_arty title: arty -slug: /hardware/catalog/boards/unverified/arm_arty +slug: /firmware/hardware/catalog/boards/unverified/arm_arty description: IoT board arty, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `arty` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_ast1030_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_ast1030_evb.md index a877a37c..4096d307 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_ast1030_evb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_ast1030_evb.md @@ -1,7 +1,7 @@ --- id: arm_ast1030_evb title: Aspeed AST1030-EVB -slug: /hardware/catalog/boards/unverified/arm_ast1030_evb +slug: /firmware/hardware/catalog/boards/unverified/arm_ast1030_evb description: IoT board Aspeed AST1030-EVB, compatible with Golioth at unverified level. image: /img/boards/arm/ast1030_evb.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `ast1030_evb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 768 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_atsamc21n_xpro.md b/docs/firmware/hardware/6-catalog/unverified/arm_atsamc21n_xpro.md index 02e08ba8..7975f85c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_atsamc21n_xpro.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_atsamc21n_xpro.md @@ -1,7 +1,7 @@ --- id: arm_atsamc21n_xpro title: SAM C21N Xplained Pro -slug: /hardware/catalog/boards/unverified/arm_atsamc21n_xpro +slug: /firmware/hardware/catalog/boards/unverified/arm_atsamc21n_xpro description: IoT board SAM C21N Xplained Pro, compatible with Golioth at unverified level. image: /img/boards/arm/atsamc21n_xpro.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `atsamc21n_xpro` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_atsamd20_xpro.md b/docs/firmware/hardware/6-catalog/unverified/arm_atsamd20_xpro.md index 4a834c32..4a361aef 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_atsamd20_xpro.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_atsamd20_xpro.md @@ -1,7 +1,7 @@ --- id: arm_atsamd20_xpro title: SAM D20 Xplained Pro -slug: /hardware/catalog/boards/unverified/arm_atsamd20_xpro +slug: /firmware/hardware/catalog/boards/unverified/arm_atsamd20_xpro description: IoT board SAM D20 Xplained Pro, compatible with Golioth at unverified level. image: /img/boards/arm/atsamd20_xpro.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `atsamd20_xpro` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_atsamd21_xpro.md b/docs/firmware/hardware/6-catalog/unverified/arm_atsamd21_xpro.md index e998ca04..75d30e5a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_atsamd21_xpro.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_atsamd21_xpro.md @@ -1,7 +1,7 @@ --- id: arm_atsamd21_xpro title: SAM D21 Xplained Pro -slug: /hardware/catalog/boards/unverified/arm_atsamd21_xpro +slug: /firmware/hardware/catalog/boards/unverified/arm_atsamd21_xpro description: IoT board SAM D21 Xplained Pro, compatible with Golioth at unverified level. image: /img/boards/arm/atsamd21_xpro.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `atsamd21_xpro` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_atsame54_xpro.md b/docs/firmware/hardware/6-catalog/unverified/arm_atsame54_xpro.md index a4e791f9..008a954c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_atsame54_xpro.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_atsame54_xpro.md @@ -1,7 +1,7 @@ --- id: arm_atsame54_xpro title: SAM E54 Xplained Pro -slug: /hardware/catalog/boards/unverified/arm_atsame54_xpro +slug: /firmware/hardware/catalog/boards/unverified/arm_atsame54_xpro description: IoT board SAM E54 Xplained Pro, compatible with Golioth at unverified level. image: /img/boards/arm/atsame54_xpro.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `atsame54_xpro` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_atsaml21_xpro.md b/docs/firmware/hardware/6-catalog/unverified/arm_atsaml21_xpro.md index c1fc95fd..dd4d26bf 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_atsaml21_xpro.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_atsaml21_xpro.md @@ -1,7 +1,7 @@ --- id: arm_atsaml21_xpro title: SAM L21 Xplained Pro -slug: /hardware/catalog/boards/unverified/arm_atsaml21_xpro +slug: /firmware/hardware/catalog/boards/unverified/arm_atsaml21_xpro description: IoT board SAM L21 Xplained Pro, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `atsaml21_xpro` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_atsamr21_xpro.md b/docs/firmware/hardware/6-catalog/unverified/arm_atsamr21_xpro.md index 55bbab88..78e37551 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_atsamr21_xpro.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_atsamr21_xpro.md @@ -1,7 +1,7 @@ --- id: arm_atsamr21_xpro title: SAM R21 Xplained Pro -slug: /hardware/catalog/boards/unverified/arm_atsamr21_xpro +slug: /firmware/hardware/catalog/boards/unverified/arm_atsamr21_xpro description: IoT board SAM R21 Xplained Pro, compatible with Golioth at unverified level. image: /img/boards/arm/atsamr21_xpro.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `atsamr21_xpro` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_atsamr34_xpro.md b/docs/firmware/hardware/6-catalog/unverified/arm_atsamr34_xpro.md index ac983a2f..644bff19 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_atsamr34_xpro.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_atsamr34_xpro.md @@ -1,7 +1,7 @@ --- id: arm_atsamr34_xpro title: SAM R34 Xplained Pro -slug: /hardware/catalog/boards/unverified/arm_atsamr34_xpro +slug: /firmware/hardware/catalog/boards/unverified/arm_atsamr34_xpro description: IoT board SAM R34 Xplained Pro, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `atsamr34_xpro` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_az3166_iotdevkit.md b/docs/firmware/hardware/6-catalog/unverified/arm_az3166_iotdevkit.md index 610d3116..7122c613 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_az3166_iotdevkit.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_az3166_iotdevkit.md @@ -1,7 +1,7 @@ --- id: arm_az3166_iotdevkit title: MXChip AZ3166 IoT Devkit -slug: /hardware/catalog/boards/unverified/arm_az3166_iotdevkit +slug: /firmware/hardware/catalog/boards/unverified/arm_az3166_iotdevkit description: IoT board MXChip AZ3166 IoT Devkit, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `az3166_iotdevkit` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_b_g474e_dpow1.md b/docs/firmware/hardware/6-catalog/unverified/arm_b_g474e_dpow1.md index 1bc89fea..cc49a02d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_b_g474e_dpow1.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_b_g474e_dpow1.md @@ -1,7 +1,7 @@ --- id: arm_b_g474e_dpow1 title: ST B-G474E-DPOW1 Discovery -slug: /hardware/catalog/boards/unverified/arm_b_g474e_dpow1 +slug: /firmware/hardware/catalog/boards/unverified/arm_b_g474e_dpow1 description: IoT board ST B-G474E-DPOW1 Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/b_g474e_dpow1.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `b_g474e_dpow1` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_b_l072z_lrwan1.md b/docs/firmware/hardware/6-catalog/unverified/arm_b_l072z_lrwan1.md index 197ac56a..75583d6a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_b_l072z_lrwan1.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_b_l072z_lrwan1.md @@ -1,7 +1,7 @@ --- id: arm_b_l072z_lrwan1 title: B_L072Z_LRWAN1 -slug: /hardware/catalog/boards/unverified/arm_b_l072z_lrwan1 +slug: /firmware/hardware/catalog/boards/unverified/arm_b_l072z_lrwan1 description: IoT board B_L072Z_LRWAN1, compatible with Golioth at unverified level. image: /img/boards/arm/b_l072z_lrwan1.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `b_l072z_lrwan1` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 20 kB | | Flash* | 192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_b_l4s5i_iot01a.md b/docs/firmware/hardware/6-catalog/unverified/arm_b_l4s5i_iot01a.md index d44ee470..3cf7bd0e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_b_l4s5i_iot01a.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_b_l4s5i_iot01a.md @@ -1,7 +1,7 @@ --- id: arm_b_l4s5i_iot01a title: ST B_L4S5I_IOT01A Discovery kit -slug: /hardware/catalog/boards/unverified/arm_b_l4s5i_iot01a +slug: /firmware/hardware/catalog/boards/unverified/arm_b_l4s5i_iot01a description: IoT board ST B_L4S5I_IOT01A Discovery kit, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `b_l4s5i_iot01a` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 640 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_b_u585i_iot02a.md b/docs/firmware/hardware/6-catalog/unverified/arm_b_u585i_iot02a.md index a550679c..90d5107e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_b_u585i_iot02a.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_b_u585i_iot02a.md @@ -1,7 +1,7 @@ --- id: arm_b_u585i_iot02a title: ST B_U585I_IOT02A Discovery kit -slug: /hardware/catalog/boards/unverified/arm_b_u585i_iot02a +slug: /firmware/hardware/catalog/boards/unverified/arm_b_u585i_iot02a description: IoT board ST B_U585I_IOT02A Discovery kit, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `b_u585i_iot02a` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 786 kB | | Flash* | 2048 kB | @@ -38,6 +38,7 @@ sidebar_class_name: hide-item * backup_sram * pwm * counter +* i2c ## Supported toolchains diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_bbc_microbit.md b/docs/firmware/hardware/6-catalog/unverified/arm_bbc_microbit.md index e30ea6b8..674748ec 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_bbc_microbit.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_bbc_microbit.md @@ -1,7 +1,7 @@ --- id: arm_bbc_microbit title: BBC Micro:Bit -slug: /hardware/catalog/boards/unverified/arm_bbc_microbit +slug: /firmware/hardware/catalog/boards/unverified/arm_bbc_microbit description: IoT board BBC Micro:Bit, compatible with Golioth at unverified level. image: /img/boards/arm/bbc_microbit.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `bbc_microbit` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 16 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_bbc_microbit_v2.md b/docs/firmware/hardware/6-catalog/unverified/arm_bbc_microbit_v2.md index 63dfaa19..0427e467 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_bbc_microbit_v2.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_bbc_microbit_v2.md @@ -1,7 +1,7 @@ --- id: arm_bbc_microbit_v2 title: BBC Micro:Bit V2 -slug: /hardware/catalog/boards/unverified/arm_bbc_microbit_v2 +slug: /firmware/hardware/catalog/boards/unverified/arm_bbc_microbit_v2 description: IoT board BBC Micro:Bit V2, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `bbc_microbit_v2` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_bcm958401m2.md b/docs/firmware/hardware/6-catalog/unverified/arm_bcm958401m2.md index d2281bd4..a715d3fa 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_bcm958401m2.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_bcm958401m2.md @@ -1,7 +1,7 @@ --- id: arm_bcm958401m2 title: Broadcom BCM958401M2 -slug: /hardware/catalog/boards/unverified/arm_bcm958401m2 +slug: /firmware/hardware/catalog/boards/unverified/arm_bcm958401m2 description: IoT board Broadcom BCM958401M2, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `bcm958401m2` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_bcm958402m2_m7.md b/docs/firmware/hardware/6-catalog/unverified/arm_bcm958402m2_m7.md index a92b02df..d1d94319 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_bcm958402m2_m7.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_bcm958402m2_m7.md @@ -1,7 +1,7 @@ --- id: arm_bcm958402m2_m7 title: Broadcom BCM958402M2_M7 -slug: /hardware/catalog/boards/unverified/arm_bcm958402m2_m7 +slug: /firmware/hardware/catalog/boards/unverified/arm_bcm958402m2_m7 description: IoT board Broadcom BCM958402M2_M7, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `bcm958402m2_m7` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_beagle_bcf.md b/docs/firmware/hardware/6-catalog/unverified/arm_beagle_bcf.md index 194ea1d9..7e533eab 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_beagle_bcf.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_beagle_bcf.md @@ -1,7 +1,7 @@ --- id: arm_beagle_bcf title: beagle_bcf -slug: /hardware/catalog/boards/unverified/arm_beagle_bcf +slug: /firmware/hardware/catalog/boards/unverified/arm_beagle_bcf description: IoT board beagle_bcf, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `beagle_bcf` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_bl5340_dvk.md b/docs/firmware/hardware/6-catalog/unverified/arm_bl5340_dvk.md index 65b299cd..e29aeffd 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_bl5340_dvk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_bl5340_dvk.md @@ -1,7 +1,7 @@ --- id: arm_bl5340_dvk title: bl5340_dvk -slug: /hardware/catalog/boards/unverified/arm_bl5340_dvk +slug: /firmware/hardware/catalog/boards/unverified/arm_bl5340_dvk description: IoT board bl5340_dvk, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `bl5340_dvk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_bl652_dvk.md b/docs/firmware/hardware/6-catalog/unverified/arm_bl652_dvk.md index 22539da2..8c2af35d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_bl652_dvk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_bl652_dvk.md @@ -1,7 +1,7 @@ --- id: arm_bl652_dvk title: bl652_dvk -slug: /hardware/catalog/boards/unverified/arm_bl652_dvk +slug: /firmware/hardware/catalog/boards/unverified/arm_bl652_dvk description: IoT board bl652_dvk, compatible with Golioth at unverified level. image: /img/boards/arm/bl652_dvk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `bl652_dvk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_bl653_dvk.md b/docs/firmware/hardware/6-catalog/unverified/arm_bl653_dvk.md index f32b4819..ed69b85b 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_bl653_dvk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_bl653_dvk.md @@ -1,7 +1,7 @@ --- id: arm_bl653_dvk title: BL653_DVK -slug: /hardware/catalog/boards/unverified/arm_bl653_dvk +slug: /firmware/hardware/catalog/boards/unverified/arm_bl653_dvk description: IoT board BL653_DVK, compatible with Golioth at unverified level. image: /img/boards/arm/bl653_dvk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `bl653_dvk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_bl654_dvk.md b/docs/firmware/hardware/6-catalog/unverified/arm_bl654_dvk.md index 244b62ba..1a935b9a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_bl654_dvk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_bl654_dvk.md @@ -1,7 +1,7 @@ --- id: arm_bl654_dvk title: BL654_DVK -slug: /hardware/catalog/boards/unverified/arm_bl654_dvk +slug: /firmware/hardware/catalog/boards/unverified/arm_bl654_dvk description: IoT board BL654_DVK, compatible with Golioth at unverified level. image: /img/boards/arm/bl654_dvk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `bl654_dvk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_bl654_sensor_board.md b/docs/firmware/hardware/6-catalog/unverified/arm_bl654_sensor_board.md index be122f2e..58571c70 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_bl654_sensor_board.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_bl654_sensor_board.md @@ -1,7 +1,7 @@ --- id: arm_bl654_sensor_board title: BL654_Sensor_Board -slug: /hardware/catalog/boards/unverified/arm_bl654_sensor_board +slug: /firmware/hardware/catalog/boards/unverified/arm_bl654_sensor_board description: IoT board BL654_Sensor_Board, compatible with Golioth at unverified level. image: /img/boards/arm/bl654_sensor_board.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `bl654_sensor_board` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_bl654_usb.md b/docs/firmware/hardware/6-catalog/unverified/arm_bl654_usb.md index 32c06259..9d266f74 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_bl654_usb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_bl654_usb.md @@ -1,7 +1,7 @@ --- id: arm_bl654_usb title: BL654_USB -slug: /hardware/catalog/boards/unverified/arm_bl654_usb +slug: /firmware/hardware/catalog/boards/unverified/arm_bl654_usb description: IoT board BL654_USB, compatible with Golioth at unverified level. image: /img/boards/arm/bl654_usb.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `bl654_usb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_black_f407ve.md b/docs/firmware/hardware/6-catalog/unverified/arm_black_f407ve.md index 929317e4..158b2d19 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_black_f407ve.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_black_f407ve.md @@ -1,7 +1,7 @@ --- id: arm_black_f407ve title: Black STM32 F407VE Development Board -slug: /hardware/catalog/boards/unverified/arm_black_f407ve +slug: /firmware/hardware/catalog/boards/unverified/arm_black_f407ve description: IoT board Black STM32 F407VE Development Board, compatible with Golioth at unverified level. image: /img/boards/arm/black_f407ve.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `black_f407ve` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 192 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_black_f407zg_pro.md b/docs/firmware/hardware/6-catalog/unverified/arm_black_f407zg_pro.md index b2655995..a387fa32 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_black_f407zg_pro.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_black_f407zg_pro.md @@ -1,7 +1,7 @@ --- id: arm_black_f407zg_pro title: Black STM32 F407ZG Pro Development Board -slug: /hardware/catalog/boards/unverified/arm_black_f407zg_pro +slug: /firmware/hardware/catalog/boards/unverified/arm_black_f407zg_pro description: IoT board Black STM32 F407ZG Pro Development Board, compatible with Golioth at unverified level. image: /img/boards/arm/black_f407zg_pro.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `black_f407zg_pro` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 192 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f401cc.md b/docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f401cc.md index 9fb10261..1fdeb062 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f401cc.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f401cc.md @@ -1,7 +1,7 @@ --- id: arm_blackpill_f401cc title: WeAct Studio Black Pill V3.0 (F401CC) -slug: /hardware/catalog/boards/unverified/arm_blackpill_f401cc +slug: /firmware/hardware/catalog/boards/unverified/arm_blackpill_f401cc description: IoT board WeAct Studio Black Pill V3.0 (F401CC), compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `blackpill_f401cc` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f401ce.md b/docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f401ce.md index 1e45aa96..22d520ee 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f401ce.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f401ce.md @@ -1,7 +1,7 @@ --- id: arm_blackpill_f401ce title: WeAct Studio Black Pill V3.0 (F401CE) -slug: /hardware/catalog/boards/unverified/arm_blackpill_f401ce +slug: /firmware/hardware/catalog/boards/unverified/arm_blackpill_f401ce description: IoT board WeAct Studio Black Pill V3.0 (F401CE), compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `blackpill_f401ce` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f411ce.md b/docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f411ce.md index 9521689e..a5e6a10c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f411ce.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_blackpill_f411ce.md @@ -1,7 +1,7 @@ --- id: arm_blackpill_f411ce title: WeAct Studio Black Pill V2.0 -slug: /hardware/catalog/boards/unverified/arm_blackpill_f411ce +slug: /firmware/hardware/catalog/boards/unverified/arm_blackpill_f411ce description: IoT board WeAct Studio Black Pill V2.0, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `blackpill_f411ce` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_blueclover_plt_demo_v2_nrf52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_blueclover_plt_demo_v2_nrf52832.md index 08cbb263..ef0aab8a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_blueclover_plt_demo_v2_nrf52832.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_blueclover_plt_demo_v2_nrf52832.md @@ -1,7 +1,7 @@ --- id: arm_blueclover_plt_demo_v2_nrf52832 title: Blue Clover PLT Demo Board V2 -slug: /hardware/catalog/boards/unverified/arm_blueclover_plt_demo_v2_nrf52832 +slug: /firmware/hardware/catalog/boards/unverified/arm_blueclover_plt_demo_v2_nrf52832 description: IoT board Blue Clover PLT Demo Board V2, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `blueclover_plt_demo_v2_nrf52832` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_bt510.md b/docs/firmware/hardware/6-catalog/unverified/arm_bt510.md index df63fc96..6fb205b4 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_bt510.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_bt510.md @@ -1,7 +1,7 @@ --- id: arm_bt510 title: BT510 -slug: /hardware/catalog/boards/unverified/arm_bt510 +slug: /firmware/hardware/catalog/boards/unverified/arm_bt510 description: IoT board BT510, compatible with Golioth at unverified level. image: /img/boards/arm/bt510.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `bt510` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_bt610.md b/docs/firmware/hardware/6-catalog/unverified/arm_bt610.md index dfa06b26..f0de466d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_bt610.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_bt610.md @@ -1,7 +1,7 @@ --- id: arm_bt610 title: BT610 -slug: /hardware/catalog/boards/unverified/arm_bt610 +slug: /firmware/hardware/catalog/boards/unverified/arm_bt610 description: IoT board BT610, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `bt610` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_cc1352p1_launchxl.md b/docs/firmware/hardware/6-catalog/unverified/arm_cc1352p1_launchxl.md index 631163ba..9ddd4888 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_cc1352p1_launchxl.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_cc1352p1_launchxl.md @@ -1,7 +1,7 @@ --- id: arm_cc1352p1_launchxl title: TI SimpleLink CC1352P LaunchPad -slug: /hardware/catalog/boards/unverified/arm_cc1352p1_launchxl +slug: /firmware/hardware/catalog/boards/unverified/arm_cc1352p1_launchxl description: IoT board TI SimpleLink CC1352P LaunchPad, compatible with Golioth at unverified level. image: /img/boards/arm/cc1352p1_launchxl.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `cc1352p1_launchxl` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 80 kB | | Flash* | 352 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_cc1352r1_launchxl.md b/docs/firmware/hardware/6-catalog/unverified/arm_cc1352r1_launchxl.md index bdebea81..479e60d7 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_cc1352r1_launchxl.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_cc1352r1_launchxl.md @@ -1,7 +1,7 @@ --- id: arm_cc1352r1_launchxl title: TI SimpleLink CC1352R LaunchPad -slug: /hardware/catalog/boards/unverified/arm_cc1352r1_launchxl +slug: /firmware/hardware/catalog/boards/unverified/arm_cc1352r1_launchxl description: IoT board TI SimpleLink CC1352R LaunchPad, compatible with Golioth at unverified level. image: /img/boards/arm/cc1352r1_launchxl.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `cc1352r1_launchxl` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 80 kB | | Flash* | 352 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_cc1352r_sensortag.md b/docs/firmware/hardware/6-catalog/unverified/arm_cc1352r_sensortag.md index b9445cdc..e4f1b04e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_cc1352r_sensortag.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_cc1352r_sensortag.md @@ -1,7 +1,7 @@ --- id: arm_cc1352r_sensortag title: TI SimpleLink CC1352R SensorTag -slug: /hardware/catalog/boards/unverified/arm_cc1352r_sensortag +slug: /firmware/hardware/catalog/boards/unverified/arm_cc1352r_sensortag description: IoT board TI SimpleLink CC1352R SensorTag, compatible with Golioth at unverified level. image: /img/boards/arm/cc1352r_sensortag.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `cc1352r_sensortag` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 80 kB | | Flash* | 352 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_cc26x2r1_launchxl.md b/docs/firmware/hardware/6-catalog/unverified/arm_cc26x2r1_launchxl.md index 946fcc4a..df589071 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_cc26x2r1_launchxl.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_cc26x2r1_launchxl.md @@ -1,7 +1,7 @@ --- id: arm_cc26x2r1_launchxl title: TI SimpleLink CC26x2R LaunchPad -slug: /hardware/catalog/boards/unverified/arm_cc26x2r1_launchxl +slug: /firmware/hardware/catalog/boards/unverified/arm_cc26x2r1_launchxl description: IoT board TI SimpleLink CC26x2R LaunchPad, compatible with Golioth at unverified level. image: /img/boards/arm/cc26x2r1_launchxl.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `cc26x2r1_launchxl` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 80 kB | | Flash* | 352 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_cc3220sf_launchxl.md b/docs/firmware/hardware/6-catalog/unverified/arm_cc3220sf_launchxl.md index 368c6605..da1b7215 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_cc3220sf_launchxl.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_cc3220sf_launchxl.md @@ -1,7 +1,7 @@ --- id: arm_cc3220sf_launchxl title: SimpleLink Wi-Fi CC3220SF LaunchPad development kit -slug: /hardware/catalog/boards/unverified/arm_cc3220sf_launchxl +slug: /firmware/hardware/catalog/boards/unverified/arm_cc3220sf_launchxl description: IoT board SimpleLink Wi-Fi CC3220SF LaunchPad development kit, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `cc3220sf_launchxl` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_cc3235sf_launchxl.md b/docs/firmware/hardware/6-catalog/unverified/arm_cc3235sf_launchxl.md index 77017ba6..a55cd2d1 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_cc3235sf_launchxl.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_cc3235sf_launchxl.md @@ -1,7 +1,7 @@ --- id: arm_cc3235sf_launchxl title: SimpleLink Wi-Fi CC3235SF LaunchPad development kit -slug: /hardware/catalog/boards/unverified/arm_cc3235sf_launchxl +slug: /firmware/hardware/catalog/boards/unverified/arm_cc3235sf_launchxl description: IoT board SimpleLink Wi-Fi CC3235SF LaunchPad development kit, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `cc3235sf_launchxl` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_colibri_imx7d_m4.md b/docs/firmware/hardware/6-catalog/unverified/arm_colibri_imx7d_m4.md index cbe2b315..8167829c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_colibri_imx7d_m4.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_colibri_imx7d_m4.md @@ -1,7 +1,7 @@ --- id: arm_colibri_imx7d_m4 title: TORADEX Colibri IMX7D -slug: /hardware/catalog/boards/unverified/arm_colibri_imx7d_m4 +slug: /firmware/hardware/catalog/boards/unverified/arm_colibri_imx7d_m4 description: IoT board TORADEX Colibri IMX7D, compatible with Golioth at unverified level. image: /img/boards/arm/colibri_imx7d_m4.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `colibri_imx7d_m4` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 32 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_contextualelectronics_abc.md b/docs/firmware/hardware/6-catalog/unverified/arm_contextualelectronics_abc.md index 5db4227b..15caed13 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_contextualelectronics_abc.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_contextualelectronics_abc.md @@ -1,7 +1,7 @@ --- id: arm_contextualelectronics_abc title: contextualelectronics_abc -slug: /hardware/catalog/boards/unverified/arm_contextualelectronics_abc +slug: /firmware/hardware/catalog/boards/unverified/arm_contextualelectronics_abc description: IoT board contextualelectronics_abc, compatible with Golioth at unverified level. image: /img/boards/arm/contextualelectronics_abc.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `contextualelectronics_abc` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062_ble.md b/docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062_ble.md index 2db96528..86ec735f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062_ble.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062_ble.md @@ -1,7 +1,7 @@ --- id: arm_cy8ckit_062_ble title: cy8ckit_062_ble -slug: /hardware/catalog/boards/unverified/arm_cy8ckit_062_ble +slug: /firmware/hardware/catalog/boards/unverified/arm_cy8ckit_062_ble description: IoT board cy8ckit_062_ble, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `cy8ckit_062_ble` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062_wifi_bt.md b/docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062_wifi_bt.md index 2097454b..b18503bc 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062_wifi_bt.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062_wifi_bt.md @@ -1,7 +1,7 @@ --- id: arm_cy8ckit_062_wifi_bt title: cy8ckit_062_wifi_bt -slug: /hardware/catalog/boards/unverified/arm_cy8ckit_062_wifi_bt +slug: /firmware/hardware/catalog/boards/unverified/arm_cy8ckit_062_wifi_bt description: IoT board cy8ckit_062_wifi_bt, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `cy8ckit_062_wifi_bt` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062s4.md b/docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062s4.md index 23fce779..7fa69ff6 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062s4.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_cy8ckit_062s4.md @@ -1,7 +1,7 @@ --- id: arm_cy8ckit_062s4 title: cy8ckit_062s4 -slug: /hardware/catalog/boards/unverified/arm_cy8ckit_062s4 +slug: /firmware/hardware/catalog/boards/unverified/arm_cy8ckit_062s4 description: IoT board cy8ckit_062s4, compatible with Golioth at unverified level. image: /img/boards/arm/cy8ckit_062s4.png sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `cy8ckit_062s4` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_cy8cproto_062_4343w.md b/docs/firmware/hardware/6-catalog/unverified/arm_cy8cproto_062_4343w.md index 5b86fbf1..2e79e741 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_cy8cproto_062_4343w.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_cy8cproto_062_4343w.md @@ -1,7 +1,7 @@ --- id: arm_cy8cproto_062_4343w title: CY8CPROTO-062-4343W PSoC 6 Wi-Fi BT Prototyping Kit -slug: /hardware/catalog/boards/unverified/arm_cy8cproto_062_4343w +slug: /firmware/hardware/catalog/boards/unverified/arm_cy8cproto_062_4343w description: IoT board CY8CPROTO-062-4343W PSoC 6 Wi-Fi BT Prototyping Kit, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `cy8cproto_062_4343w` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 288 kB | | Flash* | 2048 kB | @@ -26,6 +26,10 @@ sidebar_class_name: hide-item ## Supported features * adc +* bluetooth +* wifi +* airoc +* cyw4343w * counter * gpio * uart diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_cy8cproto_063_ble.md b/docs/firmware/hardware/6-catalog/unverified/arm_cy8cproto_063_ble.md index 5ca13f2b..bdd5194d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_cy8cproto_063_ble.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_cy8cproto_063_ble.md @@ -1,7 +1,7 @@ --- id: arm_cy8cproto_063_ble title: CY8CPROTO-063-BLE PSoCℱ 6 BLE Prototyping Kit -slug: /hardware/catalog/boards/unverified/arm_cy8cproto_063_ble +slug: /firmware/hardware/catalog/boards/unverified/arm_cy8cproto_063_ble description: IoT board CY8CPROTO-063-BLE PSoCℱ 6 BLE Prototyping Kit, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `cy8cproto_063_ble` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 288 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_cyclonev_socdk.md b/docs/firmware/hardware/6-catalog/unverified/arm_cyclonev_socdk.md index 96542cce..631281f6 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_cyclonev_socdk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_cyclonev_socdk.md @@ -1,7 +1,7 @@ --- id: arm_cyclonev_socdk title: Intel Cyclone V SoC FPGA -slug: /hardware/catalog/boards/unverified/arm_cyclonev_socdk +slug: /firmware/hardware/catalog/boards/unverified/arm_cyclonev_socdk description: IoT board Intel Cyclone V SoC FPGA, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `cyclonev_socdk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_da14695_dk_usb.md b/docs/firmware/hardware/6-catalog/unverified/arm_da14695_dk_usb.md index 6110942f..0595438d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_da14695_dk_usb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_da14695_dk_usb.md @@ -1,7 +1,7 @@ --- id: arm_da14695_dk_usb title: DA14695_DK_USB -slug: /hardware/catalog/boards/unverified/arm_da14695_dk_usb +slug: /firmware/hardware/catalog/boards/unverified/arm_da14695_dk_usb description: IoT board DA14695_DK_USB, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `da14695_dk_usb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 512 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_da1469x_dk_pro.md b/docs/firmware/hardware/6-catalog/unverified/arm_da1469x_dk_pro.md index 39125e1e..5679c775 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_da1469x_dk_pro.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_da1469x_dk_pro.md @@ -1,7 +1,7 @@ --- id: arm_da1469x_dk_pro title: DA1469X_DK_PRO -slug: /hardware/catalog/boards/unverified/arm_da1469x_dk_pro +slug: /firmware/hardware/catalog/boards/unverified/arm_da1469x_dk_pro description: IoT board DA1469X_DK_PRO, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `da1469x_dk_pro` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 512 kB | | Flash* | N/A | @@ -33,6 +33,8 @@ sidebar_class_name: hide-item * spi * usb_device * rtc +* crypto +* dma ## Supported toolchains diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_decawave_dwm1001_dev.md b/docs/firmware/hardware/6-catalog/unverified/arm_decawave_dwm1001_dev.md index 564b6188..43f29831 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_decawave_dwm1001_dev.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_decawave_dwm1001_dev.md @@ -1,7 +1,7 @@ --- id: arm_decawave_dwm1001_dev title: Decawave-DWM1001-DEV -slug: /hardware/catalog/boards/unverified/arm_decawave_dwm1001_dev +slug: /firmware/hardware/catalog/boards/unverified/arm_decawave_dwm1001_dev description: IoT board Decawave-DWM1001-DEV, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `decawave_dwm1001_dev` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_degu_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_degu_evk.md index 065bc09a..38d1b59f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_degu_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_degu_evk.md @@ -1,7 +1,7 @@ --- id: arm_degu_evk title: Degu Evaluation Kit -slug: /hardware/catalog/boards/unverified/arm_degu_evk +slug: /firmware/hardware/catalog/boards/unverified/arm_degu_evk description: IoT board Degu Evaluation Kit, compatible with Golioth at unverified level. image: /img/boards/arm/degu_evk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `degu_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_disco_l475_iot1.md b/docs/firmware/hardware/6-catalog/unverified/arm_disco_l475_iot1.md index f681c41e..21ae8815 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_disco_l475_iot1.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_disco_l475_iot1.md @@ -1,7 +1,7 @@ --- id: arm_disco_l475_iot1 title: ST Disco L475 IOT01 (B-L475E-IOT01A) -slug: /hardware/catalog/boards/unverified/arm_disco_l475_iot1 +slug: /firmware/hardware/catalog/boards/unverified/arm_disco_l475_iot1 description: IoT board ST Disco L475 IOT01 (B-L475E-IOT01A), compatible with Golioth at unverified level. image: /img/boards/arm/disco_l475_iot1.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `disco_l475_iot1` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 96 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_dragino_lsn50.md b/docs/firmware/hardware/6-catalog/unverified/arm_dragino_lsn50.md index fb6bae6a..25e22a77 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_dragino_lsn50.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_dragino_lsn50.md @@ -1,7 +1,7 @@ --- id: arm_dragino_lsn50 title: Dragino LSN50 LoRA Sensor Node -slug: /hardware/catalog/boards/unverified/arm_dragino_lsn50 +slug: /firmware/hardware/catalog/boards/unverified/arm_dragino_lsn50 description: IoT board Dragino LSN50 LoRA Sensor Node, compatible with Golioth at unverified level. image: /img/boards/arm/dragino_lsn50.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `dragino_lsn50` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 20 kB | | Flash* | 192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_dragino_nbsn95.md b/docs/firmware/hardware/6-catalog/unverified/arm_dragino_nbsn95.md index 338274e7..6bd73357 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_dragino_nbsn95.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_dragino_nbsn95.md @@ -1,7 +1,7 @@ --- id: arm_dragino_nbsn95 title: Dragino NBSN95 NB-IoT Sensor Node -slug: /hardware/catalog/boards/unverified/arm_dragino_nbsn95 +slug: /firmware/hardware/catalog/boards/unverified/arm_dragino_nbsn95 description: IoT board Dragino NBSN95 NB-IoT Sensor Node, compatible with Golioth at unverified level. image: /img/boards/arm/dragino_nbsn95.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `dragino_nbsn95` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 20 kB | | Flash* | 192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_ebyte_e73_tbb_nrf52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_ebyte_e73_tbb_nrf52832.md index d2e09d48..8bd109ae 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_ebyte_e73_tbb_nrf52832.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_ebyte_e73_tbb_nrf52832.md @@ -1,7 +1,7 @@ --- id: arm_ebyte_e73_tbb_nrf52832 title: EBYTE-E73-TBB-NRF52832 -slug: /hardware/catalog/boards/unverified/arm_ebyte_e73_tbb_nrf52832 +slug: /firmware/hardware/catalog/boards/unverified/arm_ebyte_e73_tbb_nrf52832 description: IoT board EBYTE-E73-TBB-NRF52832, compatible with Golioth at unverified level. image: /img/boards/arm/ebyte_e73_tbb_nrf52832.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `ebyte_e73_tbb_nrf52832` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_sltb009a.md b/docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_sltb009a.md index 0f228db5..32bb57b3 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_sltb009a.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_sltb009a.md @@ -1,7 +1,7 @@ --- id: arm_efm32gg_sltb009a title: EFM32GG-SLTB009A -slug: /hardware/catalog/boards/unverified/arm_efm32gg_sltb009a +slug: /firmware/hardware/catalog/boards/unverified/arm_efm32gg_sltb009a description: IoT board EFM32GG-SLTB009A, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `efm32gg_sltb009a` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 192 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_slwstk6121a.md b/docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_slwstk6121a.md index a5eb2958..39afbe09 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_slwstk6121a.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_slwstk6121a.md @@ -1,7 +1,7 @@ --- id: arm_efm32gg_slwstk6121a title: EFM32GG-SLWSTK6121A -slug: /hardware/catalog/boards/unverified/arm_efm32gg_slwstk6121a +slug: /firmware/hardware/catalog/boards/unverified/arm_efm32gg_slwstk6121a description: IoT board EFM32GG-SLWSTK6121A, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `efm32gg_slwstk6121a` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 512 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_stk3701a.md b/docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_stk3701a.md index d2432d93..36d5591a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_stk3701a.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_efm32gg_stk3701a.md @@ -1,7 +1,7 @@ --- id: arm_efm32gg_stk3701a title: EFM32GG-STK3701A -slug: /hardware/catalog/boards/unverified/arm_efm32gg_stk3701a +slug: /firmware/hardware/catalog/boards/unverified/arm_efm32gg_stk3701a description: IoT board EFM32GG-STK3701A, compatible with Golioth at unverified level. image: /img/boards/arm/efm32gg_stk3701a.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `efm32gg_stk3701a` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 512 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_efm32hg_slstk3400a.md b/docs/firmware/hardware/6-catalog/unverified/arm_efm32hg_slstk3400a.md index 2c4ac837..2ee7eb8e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_efm32hg_slstk3400a.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_efm32hg_slstk3400a.md @@ -1,7 +1,7 @@ --- id: arm_efm32hg_slstk3400a title: EFM32HG-SLSTK3400A -slug: /hardware/catalog/boards/unverified/arm_efm32hg_slstk3400a +slug: /firmware/hardware/catalog/boards/unverified/arm_efm32hg_slstk3400a description: IoT board EFM32HG-SLSTK3400A, compatible with Golioth at unverified level. image: /img/boards/arm/efm32hg_slstk3400a.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `efm32hg_slstk3400a` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 8 kB | | Flash* | 64 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_efm32pg_stk3401a.md b/docs/firmware/hardware/6-catalog/unverified/arm_efm32pg_stk3401a.md index 186c35cb..a965c986 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_efm32pg_stk3401a.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_efm32pg_stk3401a.md @@ -1,7 +1,7 @@ --- id: arm_efm32pg_stk3401a title: EFM32PG-STK3401A -slug: /hardware/catalog/boards/unverified/arm_efm32pg_stk3401a +slug: /firmware/hardware/catalog/boards/unverified/arm_efm32pg_stk3401a description: IoT board EFM32PG-STK3401A, compatible with Golioth at unverified level. image: /img/boards/arm/efm32pg_stk3401a.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `efm32pg_stk3401a` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_efm32pg_stk3402a.md b/docs/firmware/hardware/6-catalog/unverified/arm_efm32pg_stk3402a.md index 896c240d..7afc1e52 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_efm32pg_stk3402a.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_efm32pg_stk3402a.md @@ -1,7 +1,7 @@ --- id: arm_efm32pg_stk3402a title: EFM32PG-STK3402A -slug: /hardware/catalog/boards/unverified/arm_efm32pg_stk3402a +slug: /firmware/hardware/catalog/boards/unverified/arm_efm32pg_stk3402a description: IoT board EFM32PG-STK3402A, compatible with Golioth at unverified level. image: /img/boards/arm/efm32pg_stk3402a.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `efm32pg_stk3402a` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_efm32wg_stk3800.md b/docs/firmware/hardware/6-catalog/unverified/arm_efm32wg_stk3800.md index cb9d2065..7ec0ccd3 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_efm32wg_stk3800.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_efm32wg_stk3800.md @@ -1,7 +1,7 @@ --- id: arm_efm32wg_stk3800 title: EFM32WG-STK3800 -slug: /hardware/catalog/boards/unverified/arm_efm32wg_stk3800 +slug: /firmware/hardware/catalog/boards/unverified/arm_efm32wg_stk3800 description: IoT board EFM32WG-STK3800, compatible with Golioth at unverified level. image: /img/boards/arm/efm32wg_stk3800.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `efm32wg_stk3800` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_efr32_radio.md b/docs/firmware/hardware/6-catalog/unverified/arm_efr32_radio.md index 1aeeb518..8aba5cf1 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_efr32_radio.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_efr32_radio.md @@ -1,7 +1,7 @@ --- id: arm_efr32_radio title: efr32_radio -slug: /hardware/catalog/boards/unverified/arm_efr32_radio +slug: /firmware/hardware/catalog/boards/unverified/arm_efr32_radio description: IoT board efr32_radio, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `efr32_radio` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_efr32_thunderboard.md b/docs/firmware/hardware/6-catalog/unverified/arm_efr32_thunderboard.md index 6be4be48..e4f5582a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_efr32_thunderboard.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_efr32_thunderboard.md @@ -1,7 +1,7 @@ --- id: arm_efr32_thunderboard title: efr32_thunderboard -slug: /hardware/catalog/boards/unverified/arm_efr32_thunderboard +slug: /firmware/hardware/catalog/boards/unverified/arm_efr32_thunderboard description: IoT board efr32_thunderboard, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `efr32_thunderboard` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_efr32mg_sltb004a.md b/docs/firmware/hardware/6-catalog/unverified/arm_efr32mg_sltb004a.md index c300f1a9..282f5109 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_efr32mg_sltb004a.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_efr32mg_sltb004a.md @@ -1,7 +1,7 @@ --- id: arm_efr32mg_sltb004a title: EFR32MG-SLTB004A -slug: /hardware/catalog/boards/unverified/arm_efr32mg_sltb004a +slug: /firmware/hardware/catalog/boards/unverified/arm_efr32mg_sltb004a description: IoT board EFR32MG-SLTB004A, compatible with Golioth at unverified level. image: /img/boards/arm/efr32mg_sltb004a.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `efr32mg_sltb004a` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_efr32xg24_dk2601b.md b/docs/firmware/hardware/6-catalog/unverified/arm_efr32xg24_dk2601b.md index 39b726be..2f99ff51 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_efr32xg24_dk2601b.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_efr32xg24_dk2601b.md @@ -1,7 +1,7 @@ --- id: arm_efr32xg24_dk2601b title: BRD4601B -slug: /hardware/catalog/boards/unverified/arm_efr32xg24_dk2601b +slug: /firmware/hardware/catalog/boards/unverified/arm_efr32xg24_dk2601b description: IoT board BRD4601B, compatible with Golioth at unverified level. image: /img/boards/arm/efr32xg24_dk2601b.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `efr32xg24_dk2601b` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1536 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_ev11l78a.md b/docs/firmware/hardware/6-catalog/unverified/arm_ev11l78a.md index 47561ac9..99033757 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_ev11l78a.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_ev11l78a.md @@ -1,7 +1,7 @@ --- id: arm_ev11l78a title: UPD301C Basic Sink Application Example -slug: /hardware/catalog/boards/unverified/arm_ev11l78a +slug: /firmware/hardware/catalog/boards/unverified/arm_ev11l78a description: IoT board UPD301C Basic Sink Application Example, compatible with Golioth at unverified level. image: /img/boards/arm/ev11l78a.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `ev11l78a` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 64 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_faze.md b/docs/firmware/hardware/6-catalog/unverified/arm_faze.md index 9f39b640..2bfba5e2 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_faze.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_faze.md @@ -1,7 +1,7 @@ --- id: arm_faze title: Seagate FireCuda Gaming SSD (FaZe) -slug: /hardware/catalog/boards/unverified/arm_faze +slug: /firmware/hardware/catalog/boards/unverified/arm_faze description: IoT board Seagate FireCuda Gaming SSD (FaZe), compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `faze` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 16 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_frdm_k22f.md b/docs/firmware/hardware/6-catalog/unverified/arm_frdm_k22f.md index fd3dc117..cc45f954 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_frdm_k22f.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_frdm_k22f.md @@ -1,7 +1,7 @@ --- id: arm_frdm_k22f title: NXP FRDM-K22F -slug: /hardware/catalog/boards/unverified/arm_frdm_k22f +slug: /firmware/hardware/catalog/boards/unverified/arm_frdm_k22f description: IoT board NXP FRDM-K22F, compatible with Golioth at unverified level. image: /img/boards/arm/frdm_k22f.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `frdm_k22f` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_frdm_k64f.md b/docs/firmware/hardware/6-catalog/unverified/arm_frdm_k64f.md index 93f881bf..dd2e7301 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_frdm_k64f.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_frdm_k64f.md @@ -1,7 +1,7 @@ --- id: arm_frdm_k64f title: NXP FRDM-K64F -slug: /hardware/catalog/boards/unverified/arm_frdm_k64f +slug: /firmware/hardware/catalog/boards/unverified/arm_frdm_k64f description: IoT board NXP FRDM-K64F, compatible with Golioth at unverified level. image: /img/boards/arm/frdm_k64f.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `frdm_k64f` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_frdm_k82f.md b/docs/firmware/hardware/6-catalog/unverified/arm_frdm_k82f.md index 65e5a038..26d27317 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_frdm_k82f.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_frdm_k82f.md @@ -1,7 +1,7 @@ --- id: arm_frdm_k82f title: NXP FRDM-K82F -slug: /hardware/catalog/boards/unverified/arm_frdm_k82f +slug: /firmware/hardware/catalog/boards/unverified/arm_frdm_k82f description: IoT board NXP FRDM-K82F, compatible with Golioth at unverified level. image: /img/boards/arm/frdm_k82f.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `frdm_k82f` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 192 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_frdm_kl25z.md b/docs/firmware/hardware/6-catalog/unverified/arm_frdm_kl25z.md index c428cc8e..6c1886e3 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_frdm_kl25z.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_frdm_kl25z.md @@ -1,7 +1,7 @@ --- id: arm_frdm_kl25z title: NXP FRDM-KL25Z -slug: /hardware/catalog/boards/unverified/arm_frdm_kl25z +slug: /firmware/hardware/catalog/boards/unverified/arm_frdm_kl25z description: IoT board NXP FRDM-KL25Z, compatible with Golioth at unverified level. image: /img/boards/arm/frdm_kl25z.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `frdm_kl25z` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 16 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_frdm_kw41z.md b/docs/firmware/hardware/6-catalog/unverified/arm_frdm_kw41z.md index 5548f7f2..456319a0 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_frdm_kw41z.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_frdm_kw41z.md @@ -1,7 +1,7 @@ --- id: arm_frdm_kw41z title: NXP FRDM-KW41Z -slug: /hardware/catalog/boards/unverified/arm_frdm_kw41z +slug: /firmware/hardware/catalog/boards/unverified/arm_frdm_kw41z description: IoT board NXP FRDM-KW41Z, compatible with Golioth at unverified level. image: /img/boards/arm/frdm_kw41z.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `frdm_kw41z` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_fvp_baser_aemv8r_aarch32.md b/docs/firmware/hardware/6-catalog/unverified/arm_fvp_baser_aemv8r_aarch32.md index 26338c3f..d9540ca5 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_fvp_baser_aemv8r_aarch32.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_fvp_baser_aemv8r_aarch32.md @@ -1,7 +1,7 @@ --- id: arm_fvp_baser_aemv8r_aarch32 title: FVP Emulation FVP_BaseR_AEMv8R AArch32 -slug: /hardware/catalog/boards/unverified/arm_fvp_baser_aemv8r_aarch32 +slug: /firmware/hardware/catalog/boards/unverified/arm_fvp_baser_aemv8r_aarch32 description: IoT board FVP Emulation FVP_BaseR_AEMv8R AArch32, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `fvp_baser_aemv8r_aarch32` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 2048 kB | | Flash* | 64 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_gd32a503v_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32a503v_eval.md index 8b6d1bfc..49441a2c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_gd32a503v_eval.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_gd32a503v_eval.md @@ -1,7 +1,7 @@ --- id: arm_gd32a503v_eval title: GigaDevice GD32A503V-EVAL -slug: /hardware/catalog/boards/unverified/arm_gd32a503v_eval +slug: /firmware/hardware/catalog/boards/unverified/arm_gd32a503v_eval description: IoT board GigaDevice GD32A503V-EVAL, compatible with Golioth at unverified level. image: /img/boards/arm/gd32a503v_eval.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `gd32a503v_eval` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 48 kB | | Flash* | 384 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_gd32e103v_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32e103v_eval.md index b260f6f8..5cd05d04 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_gd32e103v_eval.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_gd32e103v_eval.md @@ -1,7 +1,7 @@ --- id: arm_gd32e103v_eval title: GigaDevice GD32E103V Evaluation Kit -slug: /hardware/catalog/boards/unverified/arm_gd32e103v_eval +slug: /firmware/hardware/catalog/boards/unverified/arm_gd32e103v_eval description: IoT board GigaDevice GD32E103V Evaluation Kit, compatible with Golioth at unverified level. image: /img/boards/arm/gd32e103v_eval.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `gd32e103v_eval` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_gd32e507v_start.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32e507v_start.md index bbef9070..49ff99f9 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_gd32e507v_start.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_gd32e507v_start.md @@ -1,7 +1,7 @@ --- id: arm_gd32e507v_start title: GigaDevice GD32E507V-START -slug: /hardware/catalog/boards/unverified/arm_gd32e507v_start +slug: /firmware/hardware/catalog/boards/unverified/arm_gd32e507v_start description: IoT board GigaDevice GD32E507V-START, compatible with Golioth at unverified level. image: /img/boards/arm/gd32e507v_start.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `gd32e507v_start` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_gd32e507z_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32e507z_eval.md index 3be626e3..872472b4 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_gd32e507z_eval.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_gd32e507z_eval.md @@ -1,7 +1,7 @@ --- id: arm_gd32e507z_eval title: GigaDevice GD32E507Z-EVAL -slug: /hardware/catalog/boards/unverified/arm_gd32e507z_eval +slug: /firmware/hardware/catalog/boards/unverified/arm_gd32e507z_eval description: IoT board GigaDevice GD32E507Z-EVAL, compatible with Golioth at unverified level. image: /img/boards/arm/gd32e507z_eval.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `gd32e507z_eval` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_gd32f350r_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f350r_eval.md index 6d81ed3a..bbf0cf8f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_gd32f350r_eval.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f350r_eval.md @@ -1,7 +1,7 @@ --- id: arm_gd32f350r_eval title: GigaDevice GD32F350R Evaluation Kit -slug: /hardware/catalog/boards/unverified/arm_gd32f350r_eval +slug: /firmware/hardware/catalog/boards/unverified/arm_gd32f350r_eval description: IoT board GigaDevice GD32F350R Evaluation Kit, compatible with Golioth at unverified level. image: /img/boards/arm/gd32f350r_eval.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `gd32f350r_eval` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 16 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_gd32f403z_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f403z_eval.md index 11f5acd2..2c875c9f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_gd32f403z_eval.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f403z_eval.md @@ -1,7 +1,7 @@ --- id: arm_gd32f403z_eval title: GigaDevice GD32F403Z Evaluation Kit -slug: /hardware/catalog/boards/unverified/arm_gd32f403z_eval +slug: /firmware/hardware/catalog/boards/unverified/arm_gd32f403z_eval description: IoT board GigaDevice GD32F403Z Evaluation Kit, compatible with Golioth at unverified level. image: /img/boards/arm/gd32f403z_eval.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `gd32f403z_eval` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 96 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_gd32f407v_start.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f407v_start.md index bce887bc..484aa12b 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_gd32f407v_start.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f407v_start.md @@ -1,7 +1,7 @@ --- id: arm_gd32f407v_start title: GigaDevice GD32F407V-START -slug: /hardware/catalog/boards/unverified/arm_gd32f407v_start +slug: /firmware/hardware/catalog/boards/unverified/arm_gd32f407v_start description: IoT board GigaDevice GD32F407V-START, compatible with Golioth at unverified level. image: /img/boards/arm/gd32f407v_start.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `gd32f407v_start` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 192 kB | | Flash* | 3072 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_gd32f450i_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f450i_eval.md index 087a1181..1ee59aa5 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_gd32f450i_eval.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f450i_eval.md @@ -1,7 +1,7 @@ --- id: arm_gd32f450i_eval title: GigaDevice GD32F450I-EVAL -slug: /hardware/catalog/boards/unverified/arm_gd32f450i_eval +slug: /firmware/hardware/catalog/boards/unverified/arm_gd32f450i_eval description: IoT board GigaDevice GD32F450I-EVAL, compatible with Golioth at unverified level. image: /img/boards/arm/gd32f450i_eval.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `gd32f450i_eval` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 112 kB | | Flash* | 3072 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_gd32f450v_start.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f450v_start.md index d0861d9c..75b62a4f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_gd32f450v_start.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f450v_start.md @@ -1,7 +1,7 @@ --- id: arm_gd32f450v_start title: GigaDevice GD32F450V-START -slug: /hardware/catalog/boards/unverified/arm_gd32f450v_start +slug: /firmware/hardware/catalog/boards/unverified/arm_gd32f450v_start description: IoT board GigaDevice GD32F450V-START, compatible with Golioth at unverified level. image: /img/boards/arm/gd32f450v_start.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `gd32f450v_start` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 112 kB | | Flash* | 3072 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_gd32f450z_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f450z_eval.md index 2abaeae7..ea51f63d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_gd32f450z_eval.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f450z_eval.md @@ -1,7 +1,7 @@ --- id: arm_gd32f450z_eval title: GigaDevice GD32F450Z-EVAL -slug: /hardware/catalog/boards/unverified/arm_gd32f450z_eval +slug: /firmware/hardware/catalog/boards/unverified/arm_gd32f450z_eval description: IoT board GigaDevice GD32F450Z-EVAL, compatible with Golioth at unverified level. image: /img/boards/arm/gd32f450z_eval.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `gd32f450z_eval` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 3072 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_gd32f470i_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f470i_eval.md index bd43c0aa..6ab1fa2d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_gd32f470i_eval.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_gd32f470i_eval.md @@ -1,7 +1,7 @@ --- id: arm_gd32f470i_eval title: GigaDevice GD32F470I-EVAL -slug: /hardware/catalog/boards/unverified/arm_gd32f470i_eval +slug: /firmware/hardware/catalog/boards/unverified/arm_gd32f470i_eval description: IoT board GigaDevice GD32F470I-EVAL, compatible with Golioth at unverified level. image: /img/boards/arm/gd32f470i_eval.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `gd32f470i_eval` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 112 kB | | Flash* | 3072 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_gd32l233r_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_gd32l233r_eval.md index a0f48c59..1aed3c3d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_gd32l233r_eval.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_gd32l233r_eval.md @@ -1,7 +1,7 @@ --- id: arm_gd32l233r_eval title: GigaDevice GD32L233R Evaluation Kit -slug: /hardware/catalog/boards/unverified/arm_gd32l233r_eval +slug: /firmware/hardware/catalog/boards/unverified/arm_gd32l233r_eval description: IoT board GigaDevice GD32L233R Evaluation Kit, compatible with Golioth at unverified level. image: /img/boards/arm/gd32l233r_eval.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `gd32l233r_eval` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_google_dragonclaw.md b/docs/firmware/hardware/6-catalog/unverified/arm_google_dragonclaw.md index 04347989..5da1933c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_google_dragonclaw.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_google_dragonclaw.md @@ -1,7 +1,7 @@ --- id: arm_google_dragonclaw title: Google Dragonclaw Development Board -slug: /hardware/catalog/boards/unverified/arm_google_dragonclaw +slug: /firmware/hardware/catalog/boards/unverified/arm_google_dragonclaw description: IoT board Google Dragonclaw Development Board, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `google_dragonclaw` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_google_kukui.md b/docs/firmware/hardware/6-catalog/unverified/arm_google_kukui.md index 7d98fe4c..4c5c9be0 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_google_kukui.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_google_kukui.md @@ -1,7 +1,7 @@ --- id: arm_google_kukui title: Google Kukui EC -slug: /hardware/catalog/boards/unverified/arm_google_kukui +slug: /firmware/hardware/catalog/boards/unverified/arm_google_kukui description: IoT board Google Kukui EC, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `google_kukui` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_google_twinkie_v2.md b/docs/firmware/hardware/6-catalog/unverified/arm_google_twinkie_v2.md index d4ba8ac0..5d99d5c5 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_google_twinkie_v2.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_google_twinkie_v2.md @@ -1,7 +1,7 @@ --- id: arm_google_twinkie_v2 title: Google Twinkie V2 -slug: /hardware/catalog/boards/unverified/arm_google_twinkie_v2 +slug: /firmware/hardware/catalog/boards/unverified/arm_google_twinkie_v2 description: IoT board Google Twinkie V2, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `google_twinkie_v2` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 144 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_hexiwear_k64.md b/docs/firmware/hardware/6-catalog/unverified/arm_hexiwear_k64.md index 9d6e3b23..364b4fb6 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_hexiwear_k64.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_hexiwear_k64.md @@ -1,7 +1,7 @@ --- id: arm_hexiwear_k64 title: Hexiwear -slug: /hardware/catalog/boards/unverified/arm_hexiwear_k64 +slug: /firmware/hardware/catalog/boards/unverified/arm_hexiwear_k64 description: IoT board Hexiwear, compatible with Golioth at unverified level. image: /img/boards/arm/hexiwear_k64.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `hexiwear_k64` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_hexiwear_kw40z.md b/docs/firmware/hardware/6-catalog/unverified/arm_hexiwear_kw40z.md index 27956f93..37fb6035 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_hexiwear_kw40z.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_hexiwear_kw40z.md @@ -1,7 +1,7 @@ --- id: arm_hexiwear_kw40z title: Hexiwear KW40Z -slug: /hardware/catalog/boards/unverified/arm_hexiwear_kw40z +slug: /firmware/hardware/catalog/boards/unverified/arm_hexiwear_kw40z description: IoT board Hexiwear KW40Z, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `hexiwear_kw40z` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 16 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_holyiot_yj16019.md b/docs/firmware/hardware/6-catalog/unverified/arm_holyiot_yj16019.md index 7d198627..360e07cb 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_holyiot_yj16019.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_holyiot_yj16019.md @@ -1,7 +1,7 @@ --- id: arm_holyiot_yj16019 title: Holyiot YJ-16019 -slug: /hardware/catalog/boards/unverified/arm_holyiot_yj16019 +slug: /firmware/hardware/catalog/boards/unverified/arm_holyiot_yj16019 description: IoT board Holyiot YJ-16019, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `holyiot_yj16019` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_ip_k66f.md b/docs/firmware/hardware/6-catalog/unverified/arm_ip_k66f.md index 7e339863..18604155 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_ip_k66f.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_ip_k66f.md @@ -1,7 +1,7 @@ --- id: arm_ip_k66f title: SEGGER IP-K66F -slug: /hardware/catalog/boards/unverified/arm_ip_k66f +slug: /firmware/hardware/catalog/boards/unverified/arm_ip_k66f description: IoT board SEGGER IP-K66F, compatible with Golioth at unverified level. image: /img/boards/arm/ip_k66f.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `ip_k66f` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_kv260_r5.md b/docs/firmware/hardware/6-catalog/unverified/arm_kv260_r5.md index 5a4ec594..204e8e58 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_kv260_r5.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_kv260_r5.md @@ -1,7 +1,7 @@ --- id: arm_kv260_r5 title: Xilinx KV260 Development board for Cortex-R5 -slug: /hardware/catalog/boards/unverified/arm_kv260_r5 +slug: /firmware/hardware/catalog/boards/unverified/arm_kv260_r5 description: IoT board Xilinx KV260 Development board for Cortex-R5, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `kv260_r5` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 65536 kB | | Flash* | 32768 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_legend.md b/docs/firmware/hardware/6-catalog/unverified/arm_legend.md index 27f94b72..7ad81bb4 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_legend.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_legend.md @@ -1,7 +1,7 @@ --- id: arm_legend title: Legend -slug: /hardware/catalog/boards/unverified/arm_legend +slug: /firmware/hardware/catalog/boards/unverified/arm_legend description: IoT board Legend, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `legend` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 16 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_lora_e5_dev_board.md b/docs/firmware/hardware/6-catalog/unverified/arm_lora_e5_dev_board.md index 6b6b6a5e..f6923bd8 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_lora_e5_dev_board.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_lora_e5_dev_board.md @@ -1,7 +1,7 @@ --- id: arm_lora_e5_dev_board title: Seeedstudio LoRa-E5 Dev Board -slug: /hardware/catalog/boards/unverified/arm_lora_e5_dev_board +slug: /firmware/hardware/catalog/boards/unverified/arm_lora_e5_dev_board description: IoT board Seeedstudio LoRa-E5 Dev Board, compatible with Golioth at unverified level. image: /img/boards/arm/lora_e5_dev_board.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `lora_e5_dev_board` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso11u68.md b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso11u68.md index 1de73675..f1e70d9c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso11u68.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso11u68.md @@ -1,7 +1,7 @@ --- id: arm_lpcxpresso11u68 title: NXP LPCxpresso 11U68 -slug: /hardware/catalog/boards/unverified/arm_lpcxpresso11u68 +slug: /firmware/hardware/catalog/boards/unverified/arm_lpcxpresso11u68 description: IoT board NXP LPCxpresso 11U68, compatible with Golioth at unverified level. image: /img/boards/arm/lpcxpresso11u68.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `lpcxpresso11u68` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso51u68.md b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso51u68.md index 953cfe5e..29deb536 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso51u68.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso51u68.md @@ -1,7 +1,7 @@ --- id: arm_lpcxpresso51u68 title: NXP LPCXpresso51u68 -slug: /hardware/catalog/boards/unverified/arm_lpcxpresso51u68 +slug: /firmware/hardware/catalog/boards/unverified/arm_lpcxpresso51u68 description: IoT board NXP LPCXpresso51u68, compatible with Golioth at unverified level. image: /img/boards/arm/lpcxpresso51u68.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `lpcxpresso51u68` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso54114.md b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso54114.md index 77cf0c40..96ce48f3 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso54114.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso54114.md @@ -1,7 +1,7 @@ --- id: arm_lpcxpresso54114 title: lpcxpresso54114 -slug: /hardware/catalog/boards/unverified/arm_lpcxpresso54114 +slug: /firmware/hardware/catalog/boards/unverified/arm_lpcxpresso54114 description: IoT board lpcxpresso54114, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `lpcxpresso54114` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s06.md b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s06.md index f89f07d8..47fad039 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s06.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s06.md @@ -1,7 +1,7 @@ --- id: arm_lpcxpresso55s06 title: NXP LPCXpresso55S06 -slug: /hardware/catalog/boards/unverified/arm_lpcxpresso55s06 +slug: /firmware/hardware/catalog/boards/unverified/arm_lpcxpresso55s06 description: IoT board NXP LPCXpresso55S06, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `lpcxpresso55s06` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 96 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s16.md b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s16.md index 2b600641..24585a41 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s16.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s16.md @@ -1,7 +1,7 @@ --- id: arm_lpcxpresso55s16 title: NXP LPCXpresso55S16 -slug: /hardware/catalog/boards/unverified/arm_lpcxpresso55s16 +slug: /firmware/hardware/catalog/boards/unverified/arm_lpcxpresso55s16 description: IoT board NXP LPCXpresso55S16, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `lpcxpresso55s16` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 96 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s28.md b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s28.md index 46498673..cb92a269 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s28.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s28.md @@ -1,7 +1,7 @@ --- id: arm_lpcxpresso55s28 title: NXP LPCXpresso55S28 -slug: /hardware/catalog/boards/unverified/arm_lpcxpresso55s28 +slug: /firmware/hardware/catalog/boards/unverified/arm_lpcxpresso55s28 description: IoT board NXP LPCXpresso55S28, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `lpcxpresso55s28` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s36.md b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s36.md index ea510d55..e603c7a7 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s36.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s36.md @@ -1,7 +1,7 @@ --- id: arm_lpcxpresso55s36 title: NXP LPCXpresso55S36 -slug: /hardware/catalog/boards/unverified/arm_lpcxpresso55s36 +slug: /firmware/hardware/catalog/boards/unverified/arm_lpcxpresso55s36 description: IoT board NXP LPCXpresso55S36, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `lpcxpresso55s36` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 96 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s69.md b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s69.md index 0c0e13b3..86394bd5 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s69.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_lpcxpresso55s69.md @@ -1,7 +1,7 @@ --- id: arm_lpcxpresso55s69 title: lpcxpresso55s69 -slug: /hardware/catalog/boards/unverified/arm_lpcxpresso55s69 +slug: /firmware/hardware/catalog/boards/unverified/arm_lpcxpresso55s69 description: IoT board lpcxpresso55s69, compatible with Golioth at unverified level. image: /img/boards/arm/lpcxpresso55s69.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `lpcxpresso55s69` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mec1501modular_assy6885.md b/docs/firmware/hardware/6-catalog/unverified/arm_mec1501modular_assy6885.md index d8a4ea18..91453545 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mec1501modular_assy6885.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mec1501modular_assy6885.md @@ -1,7 +1,7 @@ --- id: arm_mec1501modular_assy6885 title: MEC1501 MODULAR ASSY 6885 -slug: /hardware/catalog/boards/unverified/arm_mec1501modular_assy6885 +slug: /firmware/hardware/catalog/boards/unverified/arm_mec1501modular_assy6885 description: IoT board MEC1501 MODULAR ASSY 6885, compatible with Golioth at unverified level. image: /img/boards/arm/mec1501modular_assy6885.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mec1501modular_assy6885` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 224 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mec15xxevb_assy6853.md b/docs/firmware/hardware/6-catalog/unverified/arm_mec15xxevb_assy6853.md index c89f1ef5..bf09d3e1 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mec15xxevb_assy6853.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mec15xxevb_assy6853.md @@ -1,7 +1,7 @@ --- id: arm_mec15xxevb_assy6853 title: MEC15XX EVB ASSY 6853 -slug: /hardware/catalog/boards/unverified/arm_mec15xxevb_assy6853 +slug: /firmware/hardware/catalog/boards/unverified/arm_mec15xxevb_assy6853 description: IoT board MEC15XX EVB ASSY 6853, compatible with Golioth at unverified level. image: /img/boards/arm/mec15xxevb_assy6853.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mec15xxevb_assy6853` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 224 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mec172xevb_assy6906.md b/docs/firmware/hardware/6-catalog/unverified/arm_mec172xevb_assy6906.md index 5fb4670d..0aea9009 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mec172xevb_assy6906.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mec172xevb_assy6906.md @@ -1,7 +1,7 @@ --- id: arm_mec172xevb_assy6906 title: MEC172X EVB ASSY 6906 -slug: /hardware/catalog/boards/unverified/arm_mec172xevb_assy6906 +slug: /firmware/hardware/catalog/boards/unverified/arm_mec172xevb_assy6906 description: IoT board MEC172X EVB ASSY 6906, compatible with Golioth at unverified level. image: /img/boards/arm/mec172xevb_assy6906.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mec172xevb_assy6906` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 352 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mec172xmodular_assy6930.md b/docs/firmware/hardware/6-catalog/unverified/arm_mec172xmodular_assy6930.md index 319ed01d..487a749c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mec172xmodular_assy6930.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mec172xmodular_assy6930.md @@ -1,7 +1,7 @@ --- id: arm_mec172xmodular_assy6930 title: MEC172X MODULAR ASSY 6930 -slug: /hardware/catalog/boards/unverified/arm_mec172xmodular_assy6930 +slug: /firmware/hardware/catalog/boards/unverified/arm_mec172xmodular_assy6930 description: IoT board MEC172X MODULAR ASSY 6930, compatible with Golioth at unverified level. image: /img/boards/arm/mec172xmodular_assy6930.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mec172xmodular_assy6930` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 352 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mercury_xu.md b/docs/firmware/hardware/6-catalog/unverified/arm_mercury_xu.md index fe8ddbae..2c77185c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mercury_xu.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mercury_xu.md @@ -1,7 +1,7 @@ --- id: arm_mercury_xu title: MERCURY-XU -slug: /hardware/catalog/boards/unverified/arm_mercury_xu +slug: /firmware/hardware/catalog/boards/unverified/arm_mercury_xu description: IoT board MERCURY-XU, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mercury_xu` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mg100.md b/docs/firmware/hardware/6-catalog/unverified/arm_mg100.md index 5c9f7829..1b5629dc 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mg100.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mg100.md @@ -1,7 +1,7 @@ --- id: arm_mg100 title: mg100 -slug: /hardware/catalog/boards/unverified/arm_mg100 +slug: /firmware/hardware/catalog/boards/unverified/arm_mg100 description: IoT board mg100, compatible with Golioth at unverified level. image: /img/boards/arm/mg100.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mg100` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mikroe_clicker_2.md b/docs/firmware/hardware/6-catalog/unverified/arm_mikroe_clicker_2.md index c77b4340..e4e6e542 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mikroe_clicker_2.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mikroe_clicker_2.md @@ -1,7 +1,7 @@ --- id: arm_mikroe_clicker_2 title: MikroE Clicker 2 for STM32 -slug: /hardware/catalog/boards/unverified/arm_mikroe_clicker_2 +slug: /firmware/hardware/catalog/boards/unverified/arm_mikroe_clicker_2 description: IoT board MikroE Clicker 2 for STM32, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mikroe_clicker_2` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 192 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mikroe_mini_m4_for_stm32.md b/docs/firmware/hardware/6-catalog/unverified/arm_mikroe_mini_m4_for_stm32.md index a9741a22..5ab1680f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mikroe_mini_m4_for_stm32.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mikroe_mini_m4_for_stm32.md @@ -1,7 +1,7 @@ --- id: arm_mikroe_mini_m4_for_stm32 title: Mikroe MINI-M4 for STM32 -slug: /hardware/catalog/boards/unverified/arm_mikroe_mini_m4_for_stm32 +slug: /firmware/hardware/catalog/boards/unverified/arm_mikroe_mini_m4_for_stm32 description: IoT board Mikroe MINI-M4 for STM32, compatible with Golioth at unverified level. image: /img/boards/arm/mikroe_mini_m4_for_stm32.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mikroe_mini_m4_for_stm32` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mm_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mm_evk.md index 8b7f0ec3..0c53179e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mm_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mm_evk.md @@ -1,7 +1,7 @@ --- id: arm_mimx8mm_evk title: NXP i.MX8M Mini EVK -slug: /hardware/catalog/boards/unverified/arm_mimx8mm_evk +slug: /firmware/hardware/catalog/boards/unverified/arm_mimx8mm_evk description: IoT board NXP i.MX8M Mini EVK, compatible with Golioth at unverified level. image: /img/boards/arm/mimx8mm_evk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimx8mm_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 32 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mm_phyboard_polis.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mm_phyboard_polis.md index b7fcbd6e..098ebb6a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mm_phyboard_polis.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mm_phyboard_polis.md @@ -1,7 +1,7 @@ --- id: arm_mimx8mm_phyboard_polis title: Phyboard Polis i.MX8M Mini -slug: /hardware/catalog/boards/unverified/arm_mimx8mm_phyboard_polis +slug: /firmware/hardware/catalog/boards/unverified/arm_mimx8mm_phyboard_polis description: IoT board Phyboard Polis i.MX8M Mini, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimx8mm_phyboard_polis` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 32 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mp_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mp_evk.md index 261fd055..ce97d718 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mp_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mp_evk.md @@ -1,7 +1,7 @@ --- id: arm_mimx8mp_evk title: mimx8mp_evk -slug: /hardware/catalog/boards/unverified/arm_mimx8mp_evk +slug: /firmware/hardware/catalog/boards/unverified/arm_mimx8mp_evk description: IoT board mimx8mp_evk, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimx8mp_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mp_phyboard_pollux.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mp_phyboard_pollux.md index 3a3c87a6..c8d53099 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mp_phyboard_pollux.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mp_phyboard_pollux.md @@ -1,7 +1,7 @@ --- id: arm_mimx8mp_phyboard_pollux title: PhyBOARD Pollux (i.MX8MP) -slug: /hardware/catalog/boards/unverified/arm_mimx8mp_phyboard_pollux +slug: /firmware/hardware/catalog/boards/unverified/arm_mimx8mp_phyboard_pollux description: IoT board PhyBOARD Pollux (i.MX8MP), compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimx8mp_phyboard_pollux` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mq_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mq_evk.md index 73348d0b..f93f0cd5 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mq_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimx8mq_evk.md @@ -1,7 +1,7 @@ --- id: arm_mimx8mq_evk title: mimx8mq_evk -slug: /hardware/catalog/boards/unverified/arm_mimx8mq_evk +slug: /firmware/hardware/catalog/boards/unverified/arm_mimx8mq_evk description: IoT board mimx8mq_evk, compatible with Golioth at unverified level. image: /img/boards/arm/mimx8mq_evk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimx8mq_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1010_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1010_evk.md index 6eeb73b0..9d523386 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1010_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1010_evk.md @@ -1,7 +1,7 @@ --- id: arm_mimxrt1010_evk title: NXP MIMXRT1010-EVK -slug: /hardware/catalog/boards/unverified/arm_mimxrt1010_evk +slug: /firmware/hardware/catalog/boards/unverified/arm_mimxrt1010_evk description: IoT board NXP MIMXRT1010-EVK, compatible with Golioth at unverified level. image: /img/boards/arm/mimxrt1010_evk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimxrt1010_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 16384 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1015_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1015_evk.md index 9afc3158..e7ff8545 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1015_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1015_evk.md @@ -1,7 +1,7 @@ --- id: arm_mimxrt1015_evk title: NXP MIMXRT1015-EVK -slug: /hardware/catalog/boards/unverified/arm_mimxrt1015_evk +slug: /firmware/hardware/catalog/boards/unverified/arm_mimxrt1015_evk description: IoT board NXP MIMXRT1015-EVK, compatible with Golioth at unverified level. image: /img/boards/arm/mimxrt1015_evk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimxrt1015_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 16384 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1020_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1020_evk.md index c6d2b3b8..9cfb6dec 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1020_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1020_evk.md @@ -1,7 +1,7 @@ --- id: arm_mimxrt1020_evk title: NXP MIMXRT1020-EVK -slug: /hardware/catalog/boards/unverified/arm_mimxrt1020_evk +slug: /firmware/hardware/catalog/boards/unverified/arm_mimxrt1020_evk description: IoT board NXP MIMXRT1020-EVK, compatible with Golioth at unverified level. image: /img/boards/arm/mimxrt1020_evk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimxrt1020_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32768 kB | | Flash* | 8192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1024_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1024_evk.md index 91e3e91b..014bc49c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1024_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1024_evk.md @@ -1,7 +1,7 @@ --- id: arm_mimxrt1024_evk title: NXP MIMXRT1024-EVK -slug: /hardware/catalog/boards/unverified/arm_mimxrt1024_evk +slug: /firmware/hardware/catalog/boards/unverified/arm_mimxrt1024_evk description: IoT board NXP MIMXRT1024-EVK, compatible with Golioth at unverified level. image: /img/boards/arm/mimxrt1024_evk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimxrt1024_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32768 kB | | Flash* | 4096 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1040_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1040_evk.md index 1bb43467..d770e41b 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1040_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1040_evk.md @@ -1,7 +1,7 @@ --- id: arm_mimxrt1040_evk title: NXP MIMXRT1040-EVK -slug: /hardware/catalog/boards/unverified/arm_mimxrt1040_evk +slug: /firmware/hardware/catalog/boards/unverified/arm_mimxrt1040_evk description: IoT board NXP MIMXRT1040-EVK, compatible with Golioth at unverified level. image: /img/boards/arm/mimxrt1040_evk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimxrt1040_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32768 kB | | Flash* | 8192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1050_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1050_evk.md index c3e4e45f..89a7faca 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1050_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1050_evk.md @@ -1,7 +1,7 @@ --- id: arm_mimxrt1050_evk title: NXP MIMXRT1050-EVK -slug: /hardware/catalog/boards/unverified/arm_mimxrt1050_evk +slug: /firmware/hardware/catalog/boards/unverified/arm_mimxrt1050_evk description: IoT board NXP MIMXRT1050-EVK, compatible with Golioth at unverified level. image: /img/boards/arm/mimxrt1050_evk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimxrt1050_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32768 kB | | Flash* | 65536 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1060_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1060_evk.md index 930b0d3e..21e603b4 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1060_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1060_evk.md @@ -1,7 +1,7 @@ --- id: arm_mimxrt1060_evk title: NXP MIMXRT1060-EVK -slug: /hardware/catalog/boards/unverified/arm_mimxrt1060_evk +slug: /firmware/hardware/catalog/boards/unverified/arm_mimxrt1060_evk description: IoT board NXP MIMXRT1060-EVK, compatible with Golioth at unverified level. image: /img/boards/arm/mimxrt1060_evk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimxrt1060_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32768 kB | | Flash* | 8192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1062_fmurt6.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1062_fmurt6.md index 8f441072..256445cd 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1062_fmurt6.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1062_fmurt6.md @@ -1,7 +1,7 @@ --- id: arm_mimxrt1062_fmurt6 title: NXP MIMXRT1062-FMURT6 -slug: /hardware/catalog/boards/unverified/arm_mimxrt1062_fmurt6 +slug: /firmware/hardware/catalog/boards/unverified/arm_mimxrt1062_fmurt6 description: IoT board NXP MIMXRT1062-FMURT6, compatible with Golioth at unverified level. image: /img/boards/arm/mimxrt1062_fmurt6.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimxrt1062_fmurt6` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 768 kB | | Flash* | 65536 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1064_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1064_evk.md index 8bf28b4d..182a633f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1064_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1064_evk.md @@ -1,7 +1,7 @@ --- id: arm_mimxrt1064_evk title: NXP MIMXRT1064-EVK -slug: /hardware/catalog/boards/unverified/arm_mimxrt1064_evk +slug: /firmware/hardware/catalog/boards/unverified/arm_mimxrt1064_evk description: IoT board NXP MIMXRT1064-EVK, compatible with Golioth at unverified level. image: /img/boards/arm/mimxrt1064_evk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimxrt1064_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32768 kB | | Flash* | 4096 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1160_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1160_evk.md index ef38f32e..d5650861 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1160_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1160_evk.md @@ -1,7 +1,7 @@ --- id: arm_mimxrt1160_evk title: mimxrt1160_evk -slug: /hardware/catalog/boards/unverified/arm_mimxrt1160_evk +slug: /firmware/hardware/catalog/boards/unverified/arm_mimxrt1160_evk description: IoT board mimxrt1160_evk, compatible with Golioth at unverified level. image: /img/boards/arm/mimxrt1160_evk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimxrt1160_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1170_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1170_evk.md index b7f6a6ec..33197d28 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1170_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt1170_evk.md @@ -1,7 +1,7 @@ --- id: arm_mimxrt1170_evk title: mimxrt1170_evk -slug: /hardware/catalog/boards/unverified/arm_mimxrt1170_evk +slug: /firmware/hardware/catalog/boards/unverified/arm_mimxrt1170_evk description: IoT board mimxrt1170_evk, compatible with Golioth at unverified level. image: /img/boards/arm/mimxrt1170_evk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimxrt1170_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt595_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt595_evk.md index 08f62ea9..2ebeaf87 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt595_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt595_evk.md @@ -1,7 +1,7 @@ --- id: arm_mimxrt595_evk title: mimxrt595_evk -slug: /hardware/catalog/boards/unverified/arm_mimxrt595_evk +slug: /firmware/hardware/catalog/boards/unverified/arm_mimxrt595_evk description: IoT board mimxrt595_evk, compatible with Golioth at unverified level. image: /img/boards/arm/mimxrt595_evk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimxrt595_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt685_evk.md b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt685_evk.md index ff641f99..23cab14a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt685_evk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mimxrt685_evk.md @@ -1,7 +1,7 @@ --- id: arm_mimxrt685_evk title: mimxrt685_evk -slug: /hardware/catalog/boards/unverified/arm_mimxrt685_evk +slug: /firmware/hardware/catalog/boards/unverified/arm_mimxrt685_evk description: IoT board mimxrt685_evk, compatible with Golioth at unverified level. image: /img/boards/arm/mimxrt685_evk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mimxrt685_evk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mm_feather.md b/docs/firmware/hardware/6-catalog/unverified/arm_mm_feather.md index 777ad28d..9ac2a366 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mm_feather.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mm_feather.md @@ -1,7 +1,7 @@ --- id: arm_mm_feather title: MM MM-FEATHER -slug: /hardware/catalog/boards/unverified/arm_mm_feather +slug: /firmware/hardware/catalog/boards/unverified/arm_mm_feather description: IoT board MM MM-FEATHER, compatible with Golioth at unverified level. image: /img/boards/arm/mm_feather.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mm_feather` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32768 kB | | Flash* | 8192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mm_swiftio.md b/docs/firmware/hardware/6-catalog/unverified/arm_mm_swiftio.md index d7e0097c..52dc1526 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mm_swiftio.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mm_swiftio.md @@ -1,7 +1,7 @@ --- id: arm_mm_swiftio title: MM MM-SWIFTIO -slug: /hardware/catalog/boards/unverified/arm_mm_swiftio +slug: /firmware/hardware/catalog/boards/unverified/arm_mm_swiftio description: IoT board MM MM-SWIFTIO, compatible with Golioth at unverified level. image: /img/boards/arm/mm_swiftio.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mm_swiftio` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32768 kB | | Flash* | 8192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mps2_an385.md b/docs/firmware/hardware/6-catalog/unverified/arm_mps2_an385.md index 972a23ae..b0faf773 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mps2_an385.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mps2_an385.md @@ -1,7 +1,7 @@ --- id: arm_mps2_an385 title: ARM V2M MPS2 -slug: /hardware/catalog/boards/unverified/arm_mps2_an385 +slug: /firmware/hardware/catalog/boards/unverified/arm_mps2_an385 description: IoT board ARM V2M MPS2, compatible with Golioth at unverified level. image: /img/boards/arm/mps2_an385.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mps2_an385` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mps2_an521.md b/docs/firmware/hardware/6-catalog/unverified/arm_mps2_an521.md index 6bd13f77..43e832bb 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mps2_an521.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mps2_an521.md @@ -1,7 +1,7 @@ --- id: arm_mps2_an521 title: ARM V2M MPS2-AN521 -slug: /hardware/catalog/boards/unverified/arm_mps2_an521 +slug: /firmware/hardware/catalog/boards/unverified/arm_mps2_an521 description: IoT board ARM V2M MPS2-AN521, compatible with Golioth at unverified level. image: /img/boards/arm/mps2_an521.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mps2_an521` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 4096 kB | | Flash* | 4096 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mps3_an547.md b/docs/firmware/hardware/6-catalog/unverified/arm_mps3_an547.md index b746f862..873103f5 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mps3_an547.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mps3_an547.md @@ -1,7 +1,7 @@ --- id: arm_mps3_an547 title: Arm MPS3-AN547 -slug: /hardware/catalog/boards/unverified/arm_mps3_an547 +slug: /firmware/hardware/catalog/boards/unverified/arm_mps3_an547 description: IoT board Arm MPS3-AN547, compatible with Golioth at unverified level. image: /img/boards/arm/mps3_an547.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mps3_an547` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 512 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_mr_canhubk3.md b/docs/firmware/hardware/6-catalog/unverified/arm_mr_canhubk3.md index 68b8779e..3b40f3fa 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_mr_canhubk3.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_mr_canhubk3.md @@ -1,7 +1,7 @@ --- id: arm_mr_canhubk3 title: NXP MR-CANHUBK3 -slug: /hardware/catalog/boards/unverified/arm_mr_canhubk3 +slug: /firmware/hardware/catalog/boards/unverified/arm_mr_canhubk3 description: IoT board NXP MR-CANHUBK3, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mr_canhubk3` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 1024 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_msp_exp432p401r_launchxl.md b/docs/firmware/hardware/6-catalog/unverified/arm_msp_exp432p401r_launchxl.md index 435993f5..0ce6ff59 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_msp_exp432p401r_launchxl.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_msp_exp432p401r_launchxl.md @@ -1,7 +1,7 @@ --- id: arm_msp_exp432p401r_launchxl title: MSP-EXP432P401R-LAUNCHXL -slug: /hardware/catalog/boards/unverified/arm_msp_exp432p401r_launchxl +slug: /firmware/hardware/catalog/boards/unverified/arm_msp_exp432p401r_launchxl description: IoT board MSP-EXP432P401R-LAUNCHXL, compatible with Golioth at unverified level. image: /img/boards/arm/msp_exp432p401r_launchxl.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `msp_exp432p401r_launchxl` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_npcx4m8f_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_npcx4m8f_evb.md index bb0bba1f..5a032934 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_npcx4m8f_evb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_npcx4m8f_evb.md @@ -1,7 +1,7 @@ --- id: arm_npcx4m8f_evb title: Nuvoton NPCX4M8F EVB -slug: /hardware/catalog/boards/unverified/arm_npcx4m8f_evb +slug: /firmware/hardware/catalog/boards/unverified/arm_npcx4m8f_evb description: IoT board Nuvoton NPCX4M8F EVB, compatible with Golioth at unverified level. image: /img/boards/arm/npcx4m8f_evb.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `npcx4m8f_evb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 114 kB | | Flash* | 384 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_npcx7m6fb_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_npcx7m6fb_evb.md index f61d2ca5..1cf33bbf 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_npcx7m6fb_evb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_npcx7m6fb_evb.md @@ -1,7 +1,7 @@ --- id: arm_npcx7m6fb_evb title: Nuvoton NPCX7M6FB EVB -slug: /hardware/catalog/boards/unverified/arm_npcx7m6fb_evb +slug: /firmware/hardware/catalog/boards/unverified/arm_npcx7m6fb_evb description: IoT board Nuvoton NPCX7M6FB EVB, compatible with Golioth at unverified level. image: /img/boards/arm/npcx7m6fb_evb.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `npcx7m6fb_evb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_npcx9m6f_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_npcx9m6f_evb.md index 25ccf204..674ea22a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_npcx9m6f_evb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_npcx9m6f_evb.md @@ -1,7 +1,7 @@ --- id: arm_npcx9m6f_evb title: Nuvoton NPCX9M6F EVB -slug: /hardware/catalog/boards/unverified/arm_npcx9m6f_evb +slug: /firmware/hardware/catalog/boards/unverified/arm_npcx9m6f_evb description: IoT board Nuvoton NPCX9M6F EVB, compatible with Golioth at unverified level. image: /img/boards/arm/npcx9m6f_evb.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `npcx9m6f_evb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf21540dk_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf21540dk_nrf52840.md index 77a2dfd3..6c84d03f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf21540dk_nrf52840.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf21540dk_nrf52840.md @@ -1,7 +1,7 @@ --- id: arm_nrf21540dk_nrf52840 title: nRF21540-DK-NRF52840 -slug: /hardware/catalog/boards/unverified/arm_nrf21540dk_nrf52840 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf21540dk_nrf52840 description: IoT board nRF21540-DK-NRF52840, compatible with Golioth at unverified level. image: /img/boards/arm/nrf21540dk_nrf52840.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf21540dk_nrf52840` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf51_ble400.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf51_ble400.md index 7b625461..a13e8b15 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf51_ble400.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf51_ble400.md @@ -1,7 +1,7 @@ --- id: arm_nrf51_ble400 title: BLE400 -slug: /hardware/catalog/boards/unverified/arm_nrf51_ble400 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf51_ble400 description: IoT board BLE400, compatible with Golioth at unverified level. image: /img/boards/arm/nrf51_ble400.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf51_ble400` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf51_blenano.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf51_blenano.md index 84f3748e..32bb6da3 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf51_blenano.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf51_blenano.md @@ -1,7 +1,7 @@ --- id: arm_nrf51_blenano title: BLE Nano -slug: /hardware/catalog/boards/unverified/arm_nrf51_blenano +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf51_blenano description: IoT board BLE Nano, compatible with Golioth at unverified level. image: /img/boards/arm/nrf51_blenano.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf51_blenano` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 16 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf51_vbluno51.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf51_vbluno51.md index 488f932b..67868dbb 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf51_vbluno51.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf51_vbluno51.md @@ -1,7 +1,7 @@ --- id: arm_nrf51_vbluno51 title: nRF51-VBLUno51 -slug: /hardware/catalog/boards/unverified/arm_nrf51_vbluno51 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf51_vbluno51 description: IoT board nRF51-VBLUno51, compatible with Golioth at unverified level. image: /img/boards/arm/nrf51_vbluno51.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf51_vbluno51` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf51dk_nrf51422.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf51dk_nrf51422.md index d97af38c..0b6c893f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf51dk_nrf51422.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf51dk_nrf51422.md @@ -1,7 +1,7 @@ --- id: arm_nrf51dk_nrf51422 title: nRF51-DK-NRF51422 -slug: /hardware/catalog/boards/unverified/arm_nrf51dk_nrf51422 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf51dk_nrf51422 description: IoT board nRF51-DK-NRF51422, compatible with Golioth at unverified level. image: /img/boards/arm/nrf51dk_nrf51422.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf51dk_nrf51422` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf51dongle_nrf51422.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf51dongle_nrf51422.md index 8f5e3571..631870d1 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf51dongle_nrf51422.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf51dongle_nrf51422.md @@ -1,7 +1,7 @@ --- id: arm_nrf51dongle_nrf51422 title: nRF51-Dongle-nRF51422 -slug: /hardware/catalog/boards/unverified/arm_nrf51dongle_nrf51422 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf51dongle_nrf51422 description: IoT board nRF51-Dongle-nRF51422, compatible with Golioth at unverified level. image: /img/boards/arm/nrf51dongle_nrf51422.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf51dongle_nrf51422` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52832_mdk.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52832_mdk.md index 8905e98d..57c21f84 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52832_mdk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52832_mdk.md @@ -1,7 +1,7 @@ --- id: arm_nrf52832_mdk title: nRF52832-MDK -slug: /hardware/catalog/boards/unverified/arm_nrf52832_mdk +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf52832_mdk description: IoT board nRF52832-MDK, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf52832_mdk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52820.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52820.md index 7d2646aa..55453d12 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52820.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52820.md @@ -1,7 +1,7 @@ --- id: arm_nrf52833dk_nrf52820 title: nRF52833-DK-NRF52820 -slug: /hardware/catalog/boards/unverified/arm_nrf52833dk_nrf52820 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf52833dk_nrf52820 description: IoT board nRF52833-DK-NRF52820, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf52833dk_nrf52820` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52833.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52833.md index f8d97fec..29789c3d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52833.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52833dk_nrf52833.md @@ -1,7 +1,7 @@ --- id: arm_nrf52833dk_nrf52833 title: nRF52833-DK-NRF52833 -slug: /hardware/catalog/boards/unverified/arm_nrf52833dk_nrf52833 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf52833dk_nrf52833 description: IoT board nRF52833-DK-NRF52833, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf52833dk_nrf52833` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_blip.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_blip.md index ef4b72f9..068e4d00 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_blip.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_blip.md @@ -1,7 +1,7 @@ --- id: arm_nrf52840_blip title: Electronut Labs Blip -slug: /hardware/catalog/boards/unverified/arm_nrf52840_blip +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf52840_blip description: IoT board Electronut Labs Blip, compatible with Golioth at unverified level. image: /img/boards/arm/nrf52840_blip.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf52840_blip` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_mdk.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_mdk.md index 4c101d34..bcea6162 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_mdk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_mdk.md @@ -1,7 +1,7 @@ --- id: arm_nrf52840_mdk title: nRF52840-MDK -slug: /hardware/catalog/boards/unverified/arm_nrf52840_mdk +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf52840_mdk description: IoT board nRF52840-MDK, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf52840_mdk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_mdk_usb_dongle.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_mdk_usb_dongle.md index cd2900a2..b40c13f6 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_mdk_usb_dongle.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_mdk_usb_dongle.md @@ -1,7 +1,7 @@ --- id: arm_nrf52840_mdk_usb_dongle title: nRF52840-MDK-USB-Dongle -slug: /hardware/catalog/boards/unverified/arm_nrf52840_mdk_usb_dongle +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf52840_mdk_usb_dongle description: IoT board nRF52840-MDK-USB-Dongle, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf52840_mdk_usb_dongle` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_papyr.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_papyr.md index 5c93dfd9..277e0000 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_papyr.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840_papyr.md @@ -1,7 +1,7 @@ --- id: arm_nrf52840_papyr title: Electronut Labs Papyr -slug: /hardware/catalog/boards/unverified/arm_nrf52840_papyr +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf52840_papyr description: IoT board Electronut Labs Papyr, compatible with Golioth at unverified level. image: /img/boards/arm/nrf52840_papyr.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf52840_papyr` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52811.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52811.md index 317b386c..0653bd40 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52811.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52811.md @@ -1,7 +1,7 @@ --- id: arm_nrf52840dk_nrf52811 title: nRF52840-DK-NRF52811 -slug: /hardware/catalog/boards/unverified/arm_nrf52840dk_nrf52811 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf52840dk_nrf52811 description: IoT board nRF52840-DK-NRF52811, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf52840dk_nrf52811` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 24 kB | | Flash* | 192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52840.md index a10af666..6f78d04c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52840.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dk_nrf52840.md @@ -1,7 +1,7 @@ --- id: arm_nrf52840dk_nrf52840 title: nRF52840-DK-NRF52840 -slug: /hardware/catalog/boards/unverified/arm_nrf52840dk_nrf52840 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf52840dk_nrf52840 description: IoT board nRF52840-DK-NRF52840, compatible with Golioth at unverified level. image: /img/boards/arm/nrf52840dk_nrf52840.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf52840dk_nrf52840` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dongle_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dongle_nrf52840.md index a4f8d4b2..deb757f4 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dongle_nrf52840.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52840dongle_nrf52840.md @@ -1,7 +1,7 @@ --- id: arm_nrf52840dongle_nrf52840 title: nRF52840-Dongle-NRF52840 -slug: /hardware/catalog/boards/unverified/arm_nrf52840dongle_nrf52840 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf52840dongle_nrf52840 description: IoT board nRF52840-Dongle-NRF52840, compatible with Golioth at unverified level. image: /img/boards/arm/nrf52840dongle_nrf52840.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf52840dongle_nrf52840` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_adafruit_feather.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_adafruit_feather.md index 4d5fcfc9..8389560c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_adafruit_feather.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_adafruit_feather.md @@ -1,7 +1,7 @@ --- id: arm_nrf52_adafruit_feather title: nRF52 Adafruit Feather -slug: /hardware/catalog/boards/unverified/arm_nrf52_adafruit_feather +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf52_adafruit_feather description: IoT board nRF52 Adafruit Feather, compatible with Golioth at unverified level. image: /img/boards/arm/nrf52_adafruit_feather.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf52_adafruit_feather` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_blenano2.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_blenano2.md index ad590073..943057b9 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_blenano2.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_blenano2.md @@ -1,7 +1,7 @@ --- id: arm_nrf52_blenano2 title: BLE Nano 2 -slug: /hardware/catalog/boards/unverified/arm_nrf52_blenano2 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf52_blenano2 description: IoT board BLE Nano 2, compatible with Golioth at unverified level. image: /img/boards/arm/nrf52_blenano2.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf52_blenano2` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_sparkfun.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_sparkfun.md index 475f1e21..7573dd2e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_sparkfun.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_sparkfun.md @@ -1,7 +1,7 @@ --- id: arm_nrf52_sparkfun title: Sparkfun nRF52832 breakout -slug: /hardware/catalog/boards/unverified/arm_nrf52_sparkfun +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf52_sparkfun description: IoT board Sparkfun nRF52832 breakout, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf52_sparkfun` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_vbluno52.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_vbluno52.md index 51bd0c0f..f03f61dd 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_vbluno52.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52_vbluno52.md @@ -1,7 +1,7 @@ --- id: arm_nrf52_vbluno52 title: nRF52-VBLUno52 -slug: /hardware/catalog/boards/unverified/arm_nrf52_vbluno52 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf52_vbluno52 description: IoT board nRF52-VBLUno52, compatible with Golioth at unverified level. image: /img/boards/arm/nrf52_vbluno52.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf52_vbluno52` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52805.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52805.md index 437c1b20..610f2b09 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52805.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52805.md @@ -1,7 +1,7 @@ --- id: arm_nrf52dk_nrf52805 title: nRF52-DK-NRF52805 -slug: /hardware/catalog/boards/unverified/arm_nrf52dk_nrf52805 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf52dk_nrf52805 description: IoT board nRF52-DK-NRF52805, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf52dk_nrf52805` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 24 kB | | Flash* | 192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52810.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52810.md index a84131b4..499b7f93 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52810.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52810.md @@ -1,7 +1,7 @@ --- id: arm_nrf52dk_nrf52810 title: nRF52-DK-NRF52810 -slug: /hardware/catalog/boards/unverified/arm_nrf52dk_nrf52810 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf52dk_nrf52810 description: IoT board nRF52-DK-NRF52810, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf52dk_nrf52810` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 24 kB | | Flash* | 192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52832.md index 7abaeb9d..b9be8969 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52832.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf52dk_nrf52832.md @@ -1,7 +1,7 @@ --- id: arm_nrf52dk_nrf52832 title: nRF52-DK-NRF52832 -slug: /hardware/catalog/boards/unverified/arm_nrf52dk_nrf52832 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf52dk_nrf52832 description: IoT board nRF52-DK-NRF52832, compatible with Golioth at unverified level. image: /img/boards/arm/nrf52dk_nrf52832.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf52dk_nrf52832` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf5340_audio_dk_nrf5340.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf5340_audio_dk_nrf5340.md index 4766ed14..afe889b3 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf5340_audio_dk_nrf5340.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf5340_audio_dk_nrf5340.md @@ -1,7 +1,7 @@ --- id: arm_nrf5340_audio_dk_nrf5340 title: nrf5340_audio_dk_nrf5340 -slug: /hardware/catalog/boards/unverified/arm_nrf5340_audio_dk_nrf5340 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf5340_audio_dk_nrf5340 description: IoT board nrf5340_audio_dk_nrf5340, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf5340_audio_dk_nrf5340` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf5340dk_nrf5340.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf5340dk_nrf5340.md index 953bb93c..8905b2f8 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf5340dk_nrf5340.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf5340dk_nrf5340.md @@ -1,7 +1,7 @@ --- id: arm_nrf5340dk_nrf5340 title: nrf5340dk_nrf5340 -slug: /hardware/catalog/boards/unverified/arm_nrf5340dk_nrf5340 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf5340dk_nrf5340 description: IoT board nrf5340dk_nrf5340, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf5340dk_nrf5340` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf9131ek_nrf9131.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf9131ek_nrf9131.md new file mode 100644 index 00000000..a027f0c9 --- /dev/null +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf9131ek_nrf9131.md @@ -0,0 +1,43 @@ +--- +id: arm_nrf9131ek_nrf9131 +title: nRF9131-EK-NRF9131 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf9131ek_nrf9131 +description: IoT board nRF9131-EK-NRF9131, compatible with Golioth at unverified level. +image: /img/boards/arm/null +sidebar_class_name: hide-item +--- + +[//]: # (This is an auto-generated file, do not edit! Changes to it will be lost upon re-generation) + + + +| | Board properties | +| ------------- | -------------------- | +| Board ID | `nrf9131ek_nrf9131` | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | +| Architecture | ARM | +| RAM* | 88 kB | +| Flash* | 1024 kB | + +\* values are as reported by Zephyr `.yaml` board files, which don't represent the overall available resources + + + +## Supported features + +* gpio +* i2c +* pwm +* spi +* watchdog +* counter + +## Supported toolchains + +* gnuarmemb +* xtools +* zephyr + +## Official Zephyr docs + +[nRF9131-EK-NRF9131 (nrf9131ek_nrf9131)](https://docs.zephyrproject.org/latest/boards/arm/nrf9131ek_nrf9131/doc/index.html) diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf9160_innblue21.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf9160_innblue21.md index c80a83fa..b3319a6a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf9160_innblue21.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf9160_innblue21.md @@ -1,7 +1,7 @@ --- id: arm_nrf9160_innblue21 title: nRF9160-INNBLUE21 -slug: /hardware/catalog/boards/unverified/arm_nrf9160_innblue21 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf9160_innblue21 description: IoT board nRF9160-INNBLUE21, compatible with Golioth at unverified level. image: /img/boards/arm/nrf9160_innblue21.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf9160_innblue21` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf9160_innblue22.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf9160_innblue22.md index 5d3a4463..6734b2d5 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf9160_innblue22.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf9160_innblue22.md @@ -1,7 +1,7 @@ --- id: arm_nrf9160_innblue22 title: nRF9160-INNBLUE22 -slug: /hardware/catalog/boards/unverified/arm_nrf9160_innblue22 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf9160_innblue22 description: IoT board nRF9160-INNBLUE22, compatible with Golioth at unverified level. image: /img/boards/arm/nrf9160_innblue22.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf9160_innblue22` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf9160dk_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf9160dk_nrf52840.md index 55f45290..c081162f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf9160dk_nrf52840.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf9160dk_nrf52840.md @@ -1,7 +1,7 @@ --- id: arm_nrf9160dk_nrf52840 title: nRF9160-DK-NRF52840 -slug: /hardware/catalog/boards/unverified/arm_nrf9160dk_nrf52840 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf9160dk_nrf52840 description: IoT board nRF9160-DK-NRF52840, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf9160dk_nrf52840` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nrf9161dk_nrf9161.md b/docs/firmware/hardware/6-catalog/unverified/arm_nrf9161dk_nrf9161.md index fc94a49d..6e57a3f6 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nrf9161dk_nrf9161.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nrf9161dk_nrf9161.md @@ -1,7 +1,7 @@ --- id: arm_nrf9161dk_nrf9161 title: nRF9161-DK-NRF9161 -slug: /hardware/catalog/boards/unverified/arm_nrf9161dk_nrf9161 +slug: /firmware/hardware/catalog/boards/unverified/arm_nrf9161dk_nrf9161 description: IoT board nRF9161-DK-NRF9161, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf9161dk_nrf9161` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 88 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_c031c6.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_c031c6.md index fd479b77..55a9f0b9 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_c031c6.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_c031c6.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_c031c6 title: ST Nucleo C031C6 -slug: /hardware/catalog/boards/unverified/arm_nucleo_c031c6 +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_c031c6 description: IoT board ST Nucleo C031C6, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_c031c6.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_c031c6` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 12 kB | | Flash* | 32 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f030r8.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f030r8.md index 7aea6719..1d06f082 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f030r8.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f030r8.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f030r8 title: ST Nucleo F030R8 -slug: /hardware/catalog/boards/unverified/arm_nucleo_f030r8 +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f030r8 description: IoT board ST Nucleo F030R8, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f030r8.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f030r8` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 8 kB | | Flash* | 64 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f031k6.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f031k6.md index 83b84db0..4bbcae6e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f031k6.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f031k6.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f031k6 title: ST Nucleo F031K6 -slug: /hardware/catalog/boards/unverified/arm_nucleo_f031k6 +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f031k6 description: IoT board ST Nucleo F031K6, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f031k6.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f031k6` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 4 kB | | Flash* | 32 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f042k6.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f042k6.md index e028bc76..4c4ddd4a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f042k6.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f042k6.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f042k6 title: ST Nucleo F042K6 -slug: /hardware/catalog/boards/unverified/arm_nucleo_f042k6 +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f042k6 description: IoT board ST Nucleo F042K6, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f042k6.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f042k6` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 6 kB | | Flash* | 32 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f070rb.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f070rb.md index 5e7e47d7..9c2d4c78 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f070rb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f070rb.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f070rb title: ST Nucleo F070RB -slug: /hardware/catalog/boards/unverified/arm_nucleo_f070rb +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f070rb description: IoT board ST Nucleo F070RB, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f070rb.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f070rb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 16 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f091rc.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f091rc.md index 5ac36fdb..eed1d203 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f091rc.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f091rc.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f091rc title: ST Nucleo F091RC -slug: /hardware/catalog/boards/unverified/arm_nucleo_f091rc +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f091rc description: IoT board ST Nucleo F091RC, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f091rc.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f091rc` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f103rb.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f103rb.md index 78ad870b..e3bab28e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f103rb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f103rb.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f103rb title: ST Nucleo F103RB -slug: /hardware/catalog/boards/unverified/arm_nucleo_f103rb +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f103rb description: IoT board ST Nucleo F103RB, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f103rb.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f103rb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 20 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f207zg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f207zg.md index fbf0ca61..01d9fbc3 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f207zg.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f207zg.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f207zg title: ST Nucleo F207ZG -slug: /hardware/catalog/boards/unverified/arm_nucleo_f207zg +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f207zg description: IoT board ST Nucleo F207ZG, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f207zg.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f207zg` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f302r8.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f302r8.md index 5d2e89c0..9236f55f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f302r8.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f302r8.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f302r8 title: ST Nucleo F302R8 -slug: /hardware/catalog/boards/unverified/arm_nucleo_f302r8 +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f302r8 description: IoT board ST Nucleo F302R8, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f302r8.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f302r8` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 16 kB | | Flash* | 64 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f303k8.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f303k8.md index 1e4121cd..228861ae 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f303k8.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f303k8.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f303k8 title: ST Nucleo F303K8 -slug: /hardware/catalog/boards/unverified/arm_nucleo_f303k8 +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f303k8 description: IoT board ST Nucleo F303K8, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f303k8.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f303k8` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 12 kB | | Flash* | 64 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f303re.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f303re.md index bbb7ce50..4651d457 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f303re.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f303re.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f303re title: ST Nucleo F303RE -slug: /hardware/catalog/boards/unverified/arm_nucleo_f303re +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f303re description: IoT board ST Nucleo F303RE, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f303re.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f303re` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 80 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f334r8.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f334r8.md index d2af8f08..1fece37e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f334r8.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f334r8.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f334r8 title: ST Nucleo F334R8 -slug: /hardware/catalog/boards/unverified/arm_nucleo_f334r8 +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f334r8 description: IoT board ST Nucleo F334R8, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f334r8.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f334r8` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 12 kB | | Flash* | 64 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f401re.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f401re.md index 755ff293..ea0034c3 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f401re.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f401re.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f401re title: ST Nucleo F401RE -slug: /hardware/catalog/boards/unverified/arm_nucleo_f401re +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f401re description: IoT board ST Nucleo F401RE, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f401re.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f401re` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 96 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f410rb.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f410rb.md index 1dadae16..1968e954 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f410rb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f410rb.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f410rb title: ST Nucleo F410RB -slug: /hardware/catalog/boards/unverified/arm_nucleo_f410rb +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f410rb description: IoT board ST Nucleo F410RB, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f410rb.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f410rb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f411re.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f411re.md index ebf9703c..1afb5876 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f411re.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f411re.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f411re title: ST Nucleo F411RE -slug: /hardware/catalog/boards/unverified/arm_nucleo_f411re +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f411re description: IoT board ST Nucleo F411RE, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f411re.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f411re` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 96 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f412zg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f412zg.md index 41e66e56..72193331 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f412zg.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f412zg.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f412zg title: ST Nucleo F412ZG -slug: /hardware/catalog/boards/unverified/arm_nucleo_f412zg +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f412zg description: IoT board ST Nucleo F412ZG, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f412zg.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f412zg` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f413zh.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f413zh.md index 69912923..28dbb372 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f413zh.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f413zh.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f413zh title: ST Nucleo F413ZH -slug: /hardware/catalog/boards/unverified/arm_nucleo_f413zh +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f413zh description: IoT board ST Nucleo F413ZH, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f413zh.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f413zh` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 320 kB | | Flash* | 1536 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f429zi.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f429zi.md index ccb1edb9..47b8a02d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f429zi.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f429zi.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f429zi title: ST Nucleo F429ZI -slug: /hardware/catalog/boards/unverified/arm_nucleo_f429zi +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f429zi description: IoT board ST Nucleo F429ZI, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f429zi.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f429zi` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 192 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f446re.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f446re.md index a839b5ce..71713bd9 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f446re.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f446re.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f446re title: ST Nucleo F446RE -slug: /hardware/catalog/boards/unverified/arm_nucleo_f446re +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f446re description: IoT board ST Nucleo F446RE, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f446re.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f446re` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 96 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f446ze.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f446ze.md index 463cb324..9294e8e5 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f446ze.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f446ze.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f446ze title: ST Nucleo F446ZE -slug: /hardware/catalog/boards/unverified/arm_nucleo_f446ze +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f446ze description: IoT board ST Nucleo F446ZE, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f446ze.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f446ze` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f746zg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f746zg.md index 614841e8..536f5a5a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f746zg.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f746zg.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f746zg title: ST Nucleo F746ZG -slug: /hardware/catalog/boards/unverified/arm_nucleo_f746zg +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f746zg description: IoT board ST Nucleo F746ZG, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f746zg.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f746zg` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f756zg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f756zg.md index 0b699aa5..43694486 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f756zg.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f756zg.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f756zg title: ST Nucleo F756ZG -slug: /hardware/catalog/boards/unverified/arm_nucleo_f756zg +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f756zg description: IoT board ST Nucleo F756ZG, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f756zg.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f756zg` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f767zi.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f767zi.md index 09d3959a..f696bf29 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f767zi.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_f767zi.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_f767zi title: ST Nucleo F767ZI -slug: /hardware/catalog/boards/unverified/arm_nucleo_f767zi +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_f767zi description: IoT board ST Nucleo F767ZI, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_f767zi.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_f767zi` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 512 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g031k8.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g031k8.md index 08019443..bfe2592b 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g031k8.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g031k8.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_g031k8 title: ST Nucleo G031K8 -slug: /hardware/catalog/boards/unverified/arm_nucleo_g031k8 +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_g031k8 description: IoT board ST Nucleo G031K8, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_g031k8.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_g031k8` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 8 kB | | Flash* | 64 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g070rb.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g070rb.md index 3f4b96db..83055bf6 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g070rb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g070rb.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_g070rb title: ST Nucleo G070RB -slug: /hardware/catalog/boards/unverified/arm_nucleo_g070rb +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_g070rb description: IoT board ST Nucleo G070RB, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_g070rb.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_g070rb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 36 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g071rb.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g071rb.md index f21d5aef..1f8d389f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g071rb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g071rb.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_g071rb title: ST Nucleo G071RB -slug: /hardware/catalog/boards/unverified/arm_nucleo_g071rb +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_g071rb description: IoT board ST Nucleo G071RB, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_g071rb.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_g071rb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 36 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g0b1re.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g0b1re.md index ab244e64..77eb27b8 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g0b1re.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g0b1re.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_g0b1re title: ST Nucleo G0B1RE -slug: /hardware/catalog/boards/unverified/arm_nucleo_g0b1re +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_g0b1re description: IoT board ST Nucleo G0B1RE, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_g0b1re.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_g0b1re` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 144 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g431rb.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g431rb.md index f6562262..75099298 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g431rb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g431rb.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_g431rb title: ST Nucleo G431RB -slug: /hardware/catalog/boards/unverified/arm_nucleo_g431rb +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_g431rb description: IoT board ST Nucleo G431RB, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_g431rb.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_g431rb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g474re.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g474re.md index 45f85e12..3be857e1 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g474re.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_g474re.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_g474re title: ST Nucleo G474RE -slug: /hardware/catalog/boards/unverified/arm_nucleo_g474re +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_g474re description: IoT board ST Nucleo G474RE, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_g474re.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_g474re` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h563zi.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h563zi.md index 138e8630..afa05446 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h563zi.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h563zi.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_h563zi title: ST Nucleo H563ZI -slug: /hardware/catalog/boards/unverified/arm_nucleo_h563zi +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_h563zi description: IoT board ST Nucleo H563ZI, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_h563zi.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_h563zi` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 640 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h723zg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h723zg.md index d2a5294c..d558ed34 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h723zg.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h723zg.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_h723zg title: ST Nucleo H723ZG -slug: /hardware/catalog/boards/unverified/arm_nucleo_h723zg +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_h723zg description: IoT board ST Nucleo H723ZG, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_h723zg.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_h723zg` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 372 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h743zi.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h743zi.md index 56947847..17e4f1d1 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h743zi.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h743zi.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_h743zi title: ST Nucleo H743ZI -slug: /hardware/catalog/boards/unverified/arm_nucleo_h743zi +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_h743zi description: IoT board ST Nucleo H743ZI, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_h743zi.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_h743zi` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 512 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h745zi_q.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h745zi_q.md index 99e2ecbd..b3019e2f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h745zi_q.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h745zi_q.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_h745zi_q title: nucleo_h745zi_q -slug: /hardware/catalog/boards/unverified/arm_nucleo_h745zi_q +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_h745zi_q description: IoT board nucleo_h745zi_q, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_h745zi_q.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_h745zi_q` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h753zi.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h753zi.md index 330d5645..a1ba07e5 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h753zi.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h753zi.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_h753zi title: ST Nucleo H753ZI -slug: /hardware/catalog/boards/unverified/arm_nucleo_h753zi +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_h753zi description: IoT board ST Nucleo H753ZI, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_h753zi.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_h753zi` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 512 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h7a3zi_q.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h7a3zi_q.md index 72cf552d..22a5178c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h7a3zi_q.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_h7a3zi_q.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_h7a3zi_q title: ST Nucleo H7A3ZI-Q -slug: /hardware/catalog/boards/unverified/arm_nucleo_h7a3zi_q +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_h7a3zi_q description: IoT board ST Nucleo H7A3ZI-Q, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_h7a3zi_q.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_h7a3zi_q` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 1280 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l011k4.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l011k4.md index 78e5e69e..098f57fc 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l011k4.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l011k4.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_l011k4 title: ST Nucleo L011K4 -slug: /hardware/catalog/boards/unverified/arm_nucleo_l011k4 +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_l011k4 description: IoT board ST Nucleo L011K4, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_l011k4.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_l011k4` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 2 kB | | Flash* | 16 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l031k6.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l031k6.md index 560860f6..42ca0bf3 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l031k6.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l031k6.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_l031k6 title: ST Nucleo L031K6 -slug: /hardware/catalog/boards/unverified/arm_nucleo_l031k6 +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_l031k6 description: IoT board ST Nucleo L031K6, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_l031k6.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_l031k6` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 8 kB | | Flash* | 32 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l053r8.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l053r8.md index aba3fa2b..903ad747 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l053r8.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l053r8.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_l053r8 title: ST Nucleo L053R8 -slug: /hardware/catalog/boards/unverified/arm_nucleo_l053r8 +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_l053r8 description: IoT board ST Nucleo L053R8, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_l053r8.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_l053r8` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 8 kB | | Flash* | 64 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l073rz.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l073rz.md index d96c4bd8..a925e719 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l073rz.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l073rz.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_l073rz title: ST Nucleo L073RZ -slug: /hardware/catalog/boards/unverified/arm_nucleo_l073rz +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_l073rz description: IoT board ST Nucleo L073RZ, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_l073rz.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_l073rz` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 20 kB | | Flash* | 192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l152re.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l152re.md index 0d6a5b47..fca072fe 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l152re.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l152re.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_l152re title: ST Nucleo L152RE -slug: /hardware/catalog/boards/unverified/arm_nucleo_l152re +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_l152re description: IoT board ST Nucleo L152RE, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_l152re.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_l152re` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 80 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l412rb_p.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l412rb_p.md index ca6fbc25..623803cd 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l412rb_p.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l412rb_p.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_l412rb_p title: ST Nucleo L412RP-P -slug: /hardware/catalog/boards/unverified/arm_nucleo_l412rb_p +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_l412rb_p description: IoT board ST Nucleo L412RP-P, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_l412rb_p.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_l412rb_p` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 40 kB | | Flash* | 64 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l432kc.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l432kc.md index c8b6c73d..2f9f2191 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l432kc.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l432kc.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_l432kc title: ST Nucleo L432KC -slug: /hardware/catalog/boards/unverified/arm_nucleo_l432kc +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_l432kc description: IoT board ST Nucleo L432KC, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_l432kc.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_l432kc` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l433rc_p.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l433rc_p.md index 734f1c9c..039c00cc 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l433rc_p.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l433rc_p.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_l433rc_p title: ST Nucleo L433RC -slug: /hardware/catalog/boards/unverified/arm_nucleo_l433rc_p +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_l433rc_p description: IoT board ST Nucleo L433RC, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_l433rc_p.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_l433rc_p` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l452re.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l452re.md index 475e5c7e..f351e82d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l452re.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l452re.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_l452re title: ST Nucleo L452RE -slug: /hardware/catalog/boards/unverified/arm_nucleo_l452re +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_l452re description: IoT board ST Nucleo L452RE, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_l452re` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 160 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l476rg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l476rg.md index 96eb79f6..53df8d3e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l476rg.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l476rg.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_l476rg title: ST Nucleo L476RG -slug: /hardware/catalog/boards/unverified/arm_nucleo_l476rg +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_l476rg description: IoT board ST Nucleo L476RG, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_l476rg.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_l476rg` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 96 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l496zg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l496zg.md index c290d2f0..954b4664 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l496zg.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l496zg.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_l496zg title: ST Nucleo L496ZG -slug: /hardware/catalog/boards/unverified/arm_nucleo_l496zg +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_l496zg description: IoT board ST Nucleo L496ZG, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_l496zg.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_l496zg` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 320 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l4a6zg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l4a6zg.md index 67d85b2f..318423c5 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l4a6zg.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l4a6zg.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_l4a6zg title: ST Nucleo L4A6ZG -slug: /hardware/catalog/boards/unverified/arm_nucleo_l4a6zg +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_l4a6zg description: IoT board ST Nucleo L4A6ZG, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_l4a6zg` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 320 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l4r5zi.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l4r5zi.md index f79e0df0..3534faab 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l4r5zi.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l4r5zi.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_l4r5zi title: ST Nucleo L4R5ZI -slug: /hardware/catalog/boards/unverified/arm_nucleo_l4r5zi +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_l4r5zi description: IoT board ST Nucleo L4R5ZI, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_l4r5zi.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_l4r5zi` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 640 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l552ze_q.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l552ze_q.md index 3793047c..d5205c77 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l552ze_q.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_l552ze_q.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_l552ze_q title: ST Nucleo L552ZE Q -slug: /hardware/catalog/boards/unverified/arm_nucleo_l552ze_q +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_l552ze_q description: IoT board ST Nucleo L552ZE Q, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_l552ze_q.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_l552ze_q` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 192 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_u575zi_q.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_u575zi_q.md index 2d3788ac..d123237f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_u575zi_q.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_u575zi_q.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_u575zi_q title: ST Nucleo U575ZI Q -slug: /hardware/catalog/boards/unverified/arm_nucleo_u575zi_q +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_u575zi_q description: IoT board ST Nucleo U575ZI Q, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_u575zi_q` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 786 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_u5a5zj_q.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_u5a5zj_q.md index 73eca731..a09850d7 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_u5a5zj_q.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_u5a5zj_q.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_u5a5zj_q title: ST Nucleo U5A5ZJ Q -slug: /hardware/catalog/boards/unverified/arm_nucleo_u5a5zj_q +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_u5a5zj_q description: IoT board ST Nucleo U5A5ZJ Q, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_u5a5zj_q` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 2450 kB | | Flash* | 4096 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wb55rg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wb55rg.md index 0a1ed361..419d07e7 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wb55rg.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wb55rg.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_wb55rg title: ST Nucleo WB55RG -slug: /hardware/catalog/boards/unverified/arm_nucleo_wb55rg +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_wb55rg description: IoT board ST Nucleo WB55RG, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_wb55rg` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 192 kB | | Flash* | 808 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wba52cg.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wba52cg.md index 3c630603..16e137d0 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wba52cg.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wba52cg.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_wba52cg title: ST Nucleo WBA52CG -slug: /hardware/catalog/boards/unverified/arm_nucleo_wba52cg +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_wba52cg description: IoT board ST Nucleo WBA52CG, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_wba52cg` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 1024 kB | @@ -34,6 +34,7 @@ sidebar_class_name: hide-item * arduino_gpio * arduino_i2c * arduino_spi +* counter ## Supported toolchains diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wl55jc.md b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wl55jc.md index a49aa609..62c530bc 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wl55jc.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nucleo_wl55jc.md @@ -1,7 +1,7 @@ --- id: arm_nucleo_wl55jc title: ST Nucleo WL55JC -slug: /hardware/catalog/boards/unverified/arm_nucleo_wl55jc +slug: /firmware/hardware/catalog/boards/unverified/arm_nucleo_wl55jc description: IoT board ST Nucleo WL55JC, compatible with Golioth at unverified level. image: /img/boards/arm/nucleo_wl55jc.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nucleo_wl55jc` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_numaker_pfm_m467.md b/docs/firmware/hardware/6-catalog/unverified/arm_numaker_pfm_m467.md index 10ce92ba..4c9c8928 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_numaker_pfm_m467.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_numaker_pfm_m467.md @@ -1,7 +1,7 @@ --- id: arm_numaker_pfm_m467 title: NUVOTON NUMAKER-PFM-M467 Kit -slug: /hardware/catalog/boards/unverified/arm_numaker_pfm_m467 +slug: /firmware/hardware/catalog/boards/unverified/arm_numaker_pfm_m467 description: IoT board NUVOTON NUMAKER-PFM-M467 Kit, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `numaker_pfm_m467` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 512 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_nuvoton_pfm_m487.md b/docs/firmware/hardware/6-catalog/unverified/arm_nuvoton_pfm_m487.md index 9bfa6109..4791339a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_nuvoton_pfm_m487.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_nuvoton_pfm_m487.md @@ -1,7 +1,7 @@ --- id: arm_nuvoton_pfm_m487 title: NUVOTON-PFM-M487 -slug: /hardware/catalog/boards/unverified/arm_nuvoton_pfm_m487 +slug: /firmware/hardware/catalog/boards/unverified/arm_nuvoton_pfm_m487 description: IoT board NUVOTON-PFM-M487, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nuvoton_pfm_m487` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 160 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_olimex_lora_stm32wl_devkit.md b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_lora_stm32wl_devkit.md index 093b93dd..5430171b 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_olimex_lora_stm32wl_devkit.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_lora_stm32wl_devkit.md @@ -1,7 +1,7 @@ --- id: arm_olimex_lora_stm32wl_devkit title: Olimex LoRa STM32WL DevKit -slug: /hardware/catalog/boards/unverified/arm_olimex_lora_stm32wl_devkit +slug: /firmware/hardware/catalog/boards/unverified/arm_olimex_lora_stm32wl_devkit description: IoT board Olimex LoRa STM32WL DevKit, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `olimex_lora_stm32wl_devkit` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_e407.md b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_e407.md index 21a89567..965e1a57 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_e407.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_e407.md @@ -1,7 +1,7 @@ --- id: arm_olimex_stm32_e407 title: OLIMEX-STM32-E407 -slug: /hardware/catalog/boards/unverified/arm_olimex_stm32_e407 +slug: /firmware/hardware/catalog/boards/unverified/arm_olimex_stm32_e407 description: IoT board OLIMEX-STM32-E407, compatible with Golioth at unverified level. image: /img/boards/arm/olimex_stm32_e407.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `olimex_stm32_e407` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h103.md b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h103.md index 88ad57c9..ba20043c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h103.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h103.md @@ -1,7 +1,7 @@ --- id: arm_olimex_stm32_h103 title: OLIMEX-STM32-H103 -slug: /hardware/catalog/boards/unverified/arm_olimex_stm32_h103 +slug: /firmware/hardware/catalog/boards/unverified/arm_olimex_stm32_h103 description: IoT board OLIMEX-STM32-H103, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `olimex_stm32_h103` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 20 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h405.md b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h405.md index 11322576..534a3449 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h405.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h405.md @@ -1,7 +1,7 @@ --- id: arm_olimex_stm32_h405 title: OLIMEX-STM32-H405 -slug: /hardware/catalog/boards/unverified/arm_olimex_stm32_h405 +slug: /firmware/hardware/catalog/boards/unverified/arm_olimex_stm32_h405 description: IoT board OLIMEX-STM32-H405, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `olimex_stm32_h405` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h407.md b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h407.md index d71cacb4..bf86ef87 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h407.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_h407.md @@ -1,7 +1,7 @@ --- id: arm_olimex_stm32_h407 title: OLIMEX-STM32-H407 -slug: /hardware/catalog/boards/unverified/arm_olimex_stm32_h407 +slug: /firmware/hardware/catalog/boards/unverified/arm_olimex_stm32_h407 description: IoT board OLIMEX-STM32-H407, compatible with Golioth at unverified level. image: /img/boards/arm/olimex_stm32_h407.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `olimex_stm32_h407` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_p405.md b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_p405.md index 672f0938..37bf3a5c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_p405.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_olimex_stm32_p405.md @@ -1,7 +1,7 @@ --- id: arm_olimex_stm32_p405 title: OLIMEX-STM32-P405 -slug: /hardware/catalog/boards/unverified/arm_olimex_stm32_p405 +slug: /firmware/hardware/catalog/boards/unverified/arm_olimex_stm32_p405 description: IoT board OLIMEX-STM32-P405, compatible with Golioth at unverified level. image: /img/boards/arm/olimex_stm32_p405.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `olimex_stm32_p405` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_olimexino_stm32.md b/docs/firmware/hardware/6-catalog/unverified/arm_olimexino_stm32.md index a224d28c..7a8eecd3 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_olimexino_stm32.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_olimexino_stm32.md @@ -1,7 +1,7 @@ --- id: arm_olimexino_stm32 title: OLIMEXINO-STM32 -slug: /hardware/catalog/boards/unverified/arm_olimexino_stm32 +slug: /firmware/hardware/catalog/boards/unverified/arm_olimexino_stm32 description: IoT board OLIMEXINO-STM32, compatible with Golioth at unverified level. image: /img/boards/arm/olimexino_stm32.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `olimexino_stm32` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 20 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_pan1770_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_pan1770_evb.md index 630c4528..511aaeaa 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_pan1770_evb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_pan1770_evb.md @@ -1,7 +1,7 @@ --- id: arm_pan1770_evb title: pan1770-evb -slug: /hardware/catalog/boards/unverified/arm_pan1770_evb +slug: /firmware/hardware/catalog/boards/unverified/arm_pan1770_evb description: IoT board pan1770-evb, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `pan1770_evb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_pan1780_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_pan1780_evb.md index 95862dcd..b0cbb114 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_pan1780_evb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_pan1780_evb.md @@ -1,7 +1,7 @@ --- id: arm_pan1780_evb title: pan1780-evb -slug: /hardware/catalog/boards/unverified/arm_pan1780_evb +slug: /firmware/hardware/catalog/boards/unverified/arm_pan1780_evb description: IoT board pan1780-evb, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `pan1780_evb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_pan1781_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_pan1781_evb.md index 9694eee6..b1e821eb 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_pan1781_evb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_pan1781_evb.md @@ -1,7 +1,7 @@ --- id: arm_pan1781_evb title: pan1781-evb -slug: /hardware/catalog/boards/unverified/arm_pan1781_evb +slug: /firmware/hardware/catalog/boards/unverified/arm_pan1781_evb description: IoT board pan1781-evb, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `pan1781_evb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_pan1782_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_pan1782_evb.md index 79b760e7..5688490c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_pan1782_evb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_pan1782_evb.md @@ -1,7 +1,7 @@ --- id: arm_pan1782_evb title: pan1782-evb -slug: /hardware/catalog/boards/unverified/arm_pan1782_evb +slug: /firmware/hardware/catalog/boards/unverified/arm_pan1782_evb description: IoT board pan1782-evb, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `pan1782_evb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_pan1783_evb.md b/docs/firmware/hardware/6-catalog/unverified/arm_pan1783_evb.md new file mode 100644 index 00000000..527aa51f --- /dev/null +++ b/docs/firmware/hardware/6-catalog/unverified/arm_pan1783_evb.md @@ -0,0 +1,36 @@ +--- +id: arm_pan1783_evb +title: pan1783_evb +slug: /firmware/hardware/catalog/boards/unverified/arm_pan1783_evb +description: IoT board pan1783_evb, compatible with Golioth at unverified level. +image: /img/boards/arm/pan1783_evb.jpg +sidebar_class_name: hide-item +--- + +[//]: # (This is an auto-generated file, do not edit! Changes to it will be lost upon re-generation) + +![pan1783_evb!](/img/boards/arm/pan1783_evb.jpg "pan1783_evb") + +| | Board properties | +| ------------- | -------------------- | +| Board ID | `pan1783_evb` | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | +| Architecture | ARM | +| RAM* | N/A | +| Flash* | N/A | + +\* values are as reported by Zephyr `.yaml` board files, which don't represent the overall available resources + + + +## Supported features + +List of supported features is not available. + +## Supported toolchains + +List of supported toolchains is not available. + +## Official Zephyr docs + +[pan1783_evb (pan1783_evb)](https://docs.zephyrproject.org/latest/boards/arm/pan1783_evb/doc/index.html) diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_pandora_stm32l475.md b/docs/firmware/hardware/6-catalog/unverified/arm_pandora_stm32l475.md index 3e8165fb..2da9743e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_pandora_stm32l475.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_pandora_stm32l475.md @@ -1,7 +1,7 @@ --- id: arm_pandora_stm32l475 title: STM32L475 Pandora -slug: /hardware/catalog/boards/unverified/arm_pandora_stm32l475 +slug: /firmware/hardware/catalog/boards/unverified/arm_pandora_stm32l475 description: IoT board STM32L475 Pandora, compatible with Golioth at unverified level. image: /img/boards/arm/pandora_stm32l475.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `pandora_stm32l475` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_particle_argon.md b/docs/firmware/hardware/6-catalog/unverified/arm_particle_argon.md index cf75b19c..7ce0f04a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_particle_argon.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_particle_argon.md @@ -1,7 +1,7 @@ --- id: arm_particle_argon title: Particle Argon -slug: /hardware/catalog/boards/unverified/arm_particle_argon +slug: /firmware/hardware/catalog/boards/unverified/arm_particle_argon description: IoT board Particle Argon, compatible with Golioth at unverified level. image: /img/boards/arm/particle_argon.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `particle_argon` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 512 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_particle_boron.md b/docs/firmware/hardware/6-catalog/unverified/arm_particle_boron.md index ca79b8a1..b128d0c6 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_particle_boron.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_particle_boron.md @@ -1,7 +1,7 @@ --- id: arm_particle_boron title: Particle Boron -slug: /hardware/catalog/boards/unverified/arm_particle_boron +slug: /firmware/hardware/catalog/boards/unverified/arm_particle_boron description: IoT board Particle Boron, compatible with Golioth at unverified level. image: /img/boards/arm/particle_boron.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `particle_boron` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 512 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_particle_xenon.md b/docs/firmware/hardware/6-catalog/unverified/arm_particle_xenon.md index 56ad1877..cb7f8ca1 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_particle_xenon.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_particle_xenon.md @@ -1,7 +1,7 @@ --- id: arm_particle_xenon title: particle-xenon -slug: /hardware/catalog/boards/unverified/arm_particle_xenon +slug: /firmware/hardware/catalog/boards/unverified/arm_particle_xenon description: IoT board particle-xenon, compatible with Golioth at unverified level. image: /img/boards/arm/particle_xenon.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `particle_xenon` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 512 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_pico_pi_m4.md b/docs/firmware/hardware/6-catalog/unverified/arm_pico_pi_m4.md index 8a54b4e4..a2433a54 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_pico_pi_m4.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_pico_pi_m4.md @@ -1,7 +1,7 @@ --- id: arm_pico_pi_m4 title: Pico-Pi IMX7D -slug: /hardware/catalog/boards/unverified/arm_pico_pi_m4 +slug: /firmware/hardware/catalog/boards/unverified/arm_pico_pi_m4 description: IoT board Pico-Pi IMX7D, compatible with Golioth at unverified level. image: /img/boards/arm/pico_pi_m4.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `pico_pi_m4` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 32 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_pinetime_devkit0.md b/docs/firmware/hardware/6-catalog/unverified/arm_pinetime_devkit0.md index be9d48aa..7d011bfa 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_pinetime_devkit0.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_pinetime_devkit0.md @@ -1,7 +1,7 @@ --- id: arm_pinetime_devkit0 title: Pine64 PineTime DevKit0 -slug: /hardware/catalog/boards/unverified/arm_pinetime_devkit0 +slug: /firmware/hardware/catalog/boards/unverified/arm_pinetime_devkit0 description: IoT board Pine64 PineTime DevKit0, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `pinetime_devkit0` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_pinnacle_100_dvk.md b/docs/firmware/hardware/6-catalog/unverified/arm_pinnacle_100_dvk.md index 87411ea2..d076e6d9 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_pinnacle_100_dvk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_pinnacle_100_dvk.md @@ -1,7 +1,7 @@ --- id: arm_pinnacle_100_dvk title: pinnacle-100-dvk -slug: /hardware/catalog/boards/unverified/arm_pinnacle_100_dvk +slug: /firmware/hardware/catalog/boards/unverified/arm_pinnacle_100_dvk description: IoT board pinnacle-100-dvk, compatible with Golioth at unverified level. image: /img/boards/arm/pinnacle_100_dvk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `pinnacle_100_dvk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_a9.md b/docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_a9.md index 80c8187f..6d9bcfb5 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_a9.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_a9.md @@ -1,7 +1,7 @@ --- id: arm_qemu_cortex_a9 title: QEMU Emulation for Cortex-A9 -slug: /hardware/catalog/boards/unverified/arm_qemu_cortex_a9 +slug: /firmware/hardware/catalog/boards/unverified/arm_qemu_cortex_a9 description: IoT board QEMU Emulation for Cortex-A9, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `qemu_cortex_a9` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 524288 kB | | Flash* | 262144 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_m0.md b/docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_m0.md index 70895fb5..d2c87373 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_m0.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_m0.md @@ -1,7 +1,7 @@ --- id: arm_qemu_cortex_m0 title: QEMU Emulation for Cortex-M0 -slug: /hardware/catalog/boards/unverified/arm_qemu_cortex_m0 +slug: /firmware/hardware/catalog/boards/unverified/arm_qemu_cortex_m0 description: IoT board QEMU Emulation for Cortex-M0, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `qemu_cortex_m0` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 16 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_r5.md b/docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_r5.md index b42b37fb..586d9228 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_r5.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_qemu_cortex_r5.md @@ -1,7 +1,7 @@ --- id: arm_qemu_cortex_r5 title: QEMU Emulation for Cortex-R5 -slug: /hardware/catalog/boards/unverified/arm_qemu_cortex_r5 +slug: /firmware/hardware/catalog/boards/unverified/arm_qemu_cortex_r5 description: IoT board QEMU Emulation for Cortex-R5, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `qemu_cortex_r5` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 65536 kB | | Flash* | 32768 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_qomu.md b/docs/firmware/hardware/6-catalog/unverified/arm_qomu.md index 64e52e84..288d30e9 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_qomu.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_qomu.md @@ -1,7 +1,7 @@ --- id: arm_qomu title: QuickLogic Qomu -slug: /hardware/catalog/boards/unverified/arm_qomu +slug: /firmware/hardware/catalog/boards/unverified/arm_qomu description: IoT board QuickLogic Qomu, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `qomu` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_quick_feather.md b/docs/firmware/hardware/6-catalog/unverified/arm_quick_feather.md index a22173a8..d9c7de28 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_quick_feather.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_quick_feather.md @@ -1,7 +1,7 @@ --- id: arm_quick_feather title: QuickLogic Quick Feather -slug: /hardware/catalog/boards/unverified/arm_quick_feather +slug: /firmware/hardware/catalog/boards/unverified/arm_quick_feather description: IoT board QuickLogic Quick Feather, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `quick_feather` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_rak4631_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_rak4631_nrf52840.md index c3e9826b..0cd31044 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_rak4631_nrf52840.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_rak4631_nrf52840.md @@ -1,7 +1,7 @@ --- id: arm_rak4631_nrf52840 title: RAK4631-NRF52840 -slug: /hardware/catalog/boards/unverified/arm_rak4631_nrf52840 +slug: /firmware/hardware/catalog/boards/unverified/arm_rak4631_nrf52840 description: IoT board RAK4631-NRF52840, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `rak4631_nrf52840` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_rak5010_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_rak5010_nrf52840.md index b69a78ca..d757a5ca 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_rak5010_nrf52840.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_rak5010_nrf52840.md @@ -1,7 +1,7 @@ --- id: arm_rak5010_nrf52840 title: RAK5010-NRF52840 -slug: /hardware/catalog/boards/unverified/arm_rak5010_nrf52840 +slug: /firmware/hardware/catalog/boards/unverified/arm_rak5010_nrf52840 description: IoT board RAK5010-NRF52840, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `rak5010_nrf52840` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_33_nrf52833.md b/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_33_nrf52833.md index 84a82a15..045d2ebe 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_33_nrf52833.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_33_nrf52833.md @@ -1,7 +1,7 @@ --- id: arm_raytac_mdbt50q_db_33_nrf52833 title: Raytac MDBT50Q-DB-33 nRF52833 -slug: /hardware/catalog/boards/unverified/arm_raytac_mdbt50q_db_33_nrf52833 +slug: /firmware/hardware/catalog/boards/unverified/arm_raytac_mdbt50q_db_33_nrf52833 description: IoT board Raytac MDBT50Q-DB-33 nRF52833, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `raytac_mdbt50q_db_33_nrf52833` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_40_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_40_nrf52840.md index d5d21c0c..40aa4dab 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_40_nrf52840.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt50q_db_40_nrf52840.md @@ -1,7 +1,7 @@ --- id: arm_raytac_mdbt50q_db_40_nrf52840 title: Raytac MDBT50Q_DB_40_NRF52840 -slug: /hardware/catalog/boards/unverified/arm_raytac_mdbt50q_db_40_nrf52840 +slug: /firmware/hardware/catalog/boards/unverified/arm_raytac_mdbt50q_db_40_nrf52840 description: IoT board Raytac MDBT50Q_DB_40_NRF52840, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `raytac_mdbt50q_db_40_nrf52840` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt53_db_40_nrf5340.md b/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt53_db_40_nrf5340.md index 26041ec3..6696e46d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt53_db_40_nrf5340.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt53_db_40_nrf5340.md @@ -1,7 +1,7 @@ --- id: arm_raytac_mdbt53_db_40_nrf5340 title: raytac_mdbt53_db_40_nrf5340 -slug: /hardware/catalog/boards/unverified/arm_raytac_mdbt53_db_40_nrf5340 +slug: /firmware/hardware/catalog/boards/unverified/arm_raytac_mdbt53_db_40_nrf5340 description: IoT board raytac_mdbt53_db_40_nrf5340, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `raytac_mdbt53_db_40_nrf5340` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt53v_db_40_nrf5340.md b/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt53v_db_40_nrf5340.md index 66f1163e..5d3917ef 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt53v_db_40_nrf5340.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_raytac_mdbt53v_db_40_nrf5340.md @@ -1,7 +1,7 @@ --- id: arm_raytac_mdbt53v_db_40_nrf5340 title: raytac_mdbt53v_db_40_nrf5340 -slug: /hardware/catalog/boards/unverified/arm_raytac_mdbt53v_db_40_nrf5340 +slug: /firmware/hardware/catalog/boards/unverified/arm_raytac_mdbt53v_db_40_nrf5340 description: IoT board raytac_mdbt53v_db_40_nrf5340, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `raytac_mdbt53v_db_40_nrf5340` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_rcar_h3_salvatorx.md b/docs/firmware/hardware/6-catalog/unverified/arm_rcar_h3_salvatorx.md index a9d9a033..57319610 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_rcar_h3_salvatorx.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_rcar_h3_salvatorx.md @@ -1,7 +1,7 @@ --- id: arm_rcar_h3_salvatorx title: rcar_h3_salvatorx -slug: /hardware/catalog/boards/unverified/arm_rcar_h3_salvatorx +slug: /firmware/hardware/catalog/boards/unverified/arm_rcar_h3_salvatorx description: IoT board rcar_h3_salvatorx, compatible with Golioth at unverified level. image: /img/boards/arm/rcar_h3_salvatorx.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `rcar_h3_salvatorx` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_rcar_h3ulcb.md b/docs/firmware/hardware/6-catalog/unverified/arm_rcar_h3ulcb.md index 3af605d3..461e40ca 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_rcar_h3ulcb.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_rcar_h3ulcb.md @@ -1,7 +1,7 @@ --- id: arm_rcar_h3ulcb title: rcar_h3ulcb -slug: /hardware/catalog/boards/unverified/arm_rcar_h3ulcb +slug: /firmware/hardware/catalog/boards/unverified/arm_rcar_h3ulcb description: IoT board rcar_h3ulcb, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `rcar_h3ulcb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_rddrone_fmuk66.md b/docs/firmware/hardware/6-catalog/unverified/arm_rddrone_fmuk66.md index a7d72de3..d779e721 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_rddrone_fmuk66.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_rddrone_fmuk66.md @@ -1,7 +1,7 @@ --- id: arm_rddrone_fmuk66 title: NXP RDDRONE-FMUK66 -slug: /hardware/catalog/boards/unverified/arm_rddrone_fmuk66 +slug: /firmware/hardware/catalog/boards/unverified/arm_rddrone_fmuk66 description: IoT board NXP RDDRONE-FMUK66, compatible with Golioth at unverified level. image: /img/boards/arm/rddrone_fmuk66.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `rddrone_fmuk66` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_reel_board.md b/docs/firmware/hardware/6-catalog/unverified/arm_reel_board.md index ab72a76b..fdf57f3f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_reel_board.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_reel_board.md @@ -1,7 +1,7 @@ --- id: arm_reel_board title: reel-board -slug: /hardware/catalog/boards/unverified/arm_reel_board +slug: /firmware/hardware/catalog/boards/unverified/arm_reel_board description: IoT board reel-board, compatible with Golioth at unverified level. image: /img/boards/arm/reel_board.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `reel_board` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 512 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_rm1xx_dvk.md b/docs/firmware/hardware/6-catalog/unverified/arm_rm1xx_dvk.md index 02fe0163..cd25ddfd 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_rm1xx_dvk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_rm1xx_dvk.md @@ -1,7 +1,7 @@ --- id: arm_rm1xx_dvk title: RM1xx_DVK -slug: /hardware/catalog/boards/unverified/arm_rm1xx_dvk +slug: /firmware/hardware/catalog/boards/unverified/arm_rm1xx_dvk description: IoT board RM1xx_DVK, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `rm1xx_dvk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_ronoth_lodev.md b/docs/firmware/hardware/6-catalog/unverified/arm_ronoth_lodev.md index 9dc73388..acd15e80 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_ronoth_lodev.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_ronoth_lodev.md @@ -1,7 +1,7 @@ --- id: arm_ronoth_lodev title: Ronoth LoDev -slug: /hardware/catalog/boards/unverified/arm_ronoth_lodev +slug: /firmware/hardware/catalog/boards/unverified/arm_ronoth_lodev description: IoT board Ronoth LoDev, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `ronoth_lodev` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 20 kB | | Flash* | 192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_rpi_pico.md b/docs/firmware/hardware/6-catalog/unverified/arm_rpi_pico.md index abb8eca1..cdced12b 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_rpi_pico.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_rpi_pico.md @@ -1,7 +1,7 @@ --- id: arm_rpi_pico title: RaspberryPi-Pico -slug: /hardware/catalog/boards/unverified/arm_rpi_pico +slug: /firmware/hardware/catalog/boards/unverified/arm_rpi_pico description: IoT board RaspberryPi-Pico, compatible with Golioth at unverified level. image: /img/boards/arm/rpi_pico.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `rpi_pico` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 264 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_ruuvi_ruuvitag.md b/docs/firmware/hardware/6-catalog/unverified/arm_ruuvi_ruuvitag.md index 74155fb0..be430110 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_ruuvi_ruuvitag.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_ruuvi_ruuvitag.md @@ -1,7 +1,7 @@ --- id: arm_ruuvi_ruuvitag title: Ruuvi-RuuviTag -slug: /hardware/catalog/boards/unverified/arm_ruuvi_ruuvitag +slug: /firmware/hardware/catalog/boards/unverified/arm_ruuvi_ruuvitag description: IoT board Ruuvi-RuuviTag, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `ruuvi_ruuvitag` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_rzt2m_starterkit.md b/docs/firmware/hardware/6-catalog/unverified/arm_rzt2m_starterkit.md new file mode 100644 index 00000000..69ce2cb0 --- /dev/null +++ b/docs/firmware/hardware/6-catalog/unverified/arm_rzt2m_starterkit.md @@ -0,0 +1,36 @@ +--- +id: arm_rzt2m_starterkit +title: rzt2m_starterkit +slug: /firmware/hardware/catalog/boards/unverified/arm_rzt2m_starterkit +description: IoT board rzt2m_starterkit, compatible with Golioth at unverified level. +image: /img/boards/arm/rzt2m_starterkit.png +sidebar_class_name: hide-item +--- + +[//]: # (This is an auto-generated file, do not edit! Changes to it will be lost upon re-generation) + +![rzt2m_starterkit!](/img/boards/arm/rzt2m_starterkit.png "rzt2m_starterkit") + +| | Board properties | +| ------------- | -------------------- | +| Board ID | `rzt2m_starterkit` | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | +| Architecture | ARM | +| RAM* | N/A | +| Flash* | N/A | + +\* values are as reported by Zephyr `.yaml` board files, which don't represent the overall available resources + + + +## Supported features + +List of supported features is not available. + +## Supported toolchains + +List of supported toolchains is not available. + +## Official Zephyr docs + +[rzt2m_starterkit (rzt2m_starterkit)](https://docs.zephyrproject.org/latest/boards/arm/rzt2m_starterkit/doc/index.html) diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_s32z270dc2_r52.md b/docs/firmware/hardware/6-catalog/unverified/arm_s32z270dc2_r52.md index 7325c9d9..191e58a3 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_s32z270dc2_r52.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_s32z270dc2_r52.md @@ -1,7 +1,7 @@ --- id: arm_s32z270dc2_r52 title: s32z270dc2_r52 -slug: /hardware/catalog/boards/unverified/arm_s32z270dc2_r52 +slug: /firmware/hardware/catalog/boards/unverified/arm_s32z270dc2_r52 description: IoT board s32z270dc2_r52, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `s32z270dc2_r52` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_sam4e_xpro.md b/docs/firmware/hardware/6-catalog/unverified/arm_sam4e_xpro.md index f647631f..3305ca87 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_sam4e_xpro.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_sam4e_xpro.md @@ -1,7 +1,7 @@ --- id: arm_sam4e_xpro title: SAM4E Xplained Pro -slug: /hardware/catalog/boards/unverified/arm_sam4e_xpro +slug: /firmware/hardware/catalog/boards/unverified/arm_sam4e_xpro description: IoT board SAM4E Xplained Pro, compatible with Golioth at unverified level. image: /img/boards/arm/sam4e_xpro.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `sam4e_xpro` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_sam4l_ek.md b/docs/firmware/hardware/6-catalog/unverified/arm_sam4l_ek.md index 05267772..8013853a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_sam4l_ek.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_sam4l_ek.md @@ -1,7 +1,7 @@ --- id: arm_sam4l_ek title: SAM4L-EK -slug: /hardware/catalog/boards/unverified/arm_sam4l_ek +slug: /firmware/hardware/catalog/boards/unverified/arm_sam4l_ek description: IoT board SAM4L-EK, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `sam4l_ek` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_sam4s_xplained.md b/docs/firmware/hardware/6-catalog/unverified/arm_sam4s_xplained.md index 65c6eb26..c1fefe2a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_sam4s_xplained.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_sam4s_xplained.md @@ -1,7 +1,7 @@ --- id: arm_sam4s_xplained title: SAM4S Xplained -slug: /hardware/catalog/boards/unverified/arm_sam4s_xplained +slug: /firmware/hardware/catalog/boards/unverified/arm_sam4s_xplained description: IoT board SAM4S Xplained, compatible with Golioth at unverified level. image: /img/boards/arm/sam4s_xplained.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `sam4s_xplained` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_sam_e70_xplained.md b/docs/firmware/hardware/6-catalog/unverified/arm_sam_e70_xplained.md index 7efe3c18..a2a6216b 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_sam_e70_xplained.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_sam_e70_xplained.md @@ -1,7 +1,7 @@ --- id: arm_sam_e70_xplained title: SAM E70 Xplained -slug: /hardware/catalog/boards/unverified/arm_sam_e70_xplained +slug: /firmware/hardware/catalog/boards/unverified/arm_sam_e70_xplained description: IoT board SAM E70 Xplained, compatible with Golioth at unverified level. image: /img/boards/arm/sam_e70_xplained.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `sam_e70_xplained` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 384 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_sam_v71_xult.md b/docs/firmware/hardware/6-catalog/unverified/arm_sam_v71_xult.md index 887eaf7b..1afae3e9 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_sam_v71_xult.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_sam_v71_xult.md @@ -1,7 +1,7 @@ --- id: arm_sam_v71_xult title: SAM V71 Xplained Ultra -slug: /hardware/catalog/boards/unverified/arm_sam_v71_xult +slug: /firmware/hardware/catalog/boards/unverified/arm_sam_v71_xult description: IoT board SAM V71 Xplained Ultra, compatible with Golioth at unverified level. image: /img/boards/arm/sam_v71_xult.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `sam_v71_xult` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_scobc_module1.md b/docs/firmware/hardware/6-catalog/unverified/arm_scobc_module1.md index ec41d69e..0914e2c1 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_scobc_module1.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_scobc_module1.md @@ -1,7 +1,7 @@ --- id: arm_scobc_module1 title: Space Cubics OBC module 1 -slug: /hardware/catalog/boards/unverified/arm_scobc_module1 +slug: /firmware/hardware/catalog/boards/unverified/arm_scobc_module1 description: IoT board Space Cubics OBC module 1, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `scobc_module1` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_seeeduino_xiao.md b/docs/firmware/hardware/6-catalog/unverified/arm_seeeduino_xiao.md index 9b92fff2..2a6f945f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_seeeduino_xiao.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_seeeduino_xiao.md @@ -1,7 +1,7 @@ --- id: arm_seeeduino_xiao title: Seeeduino XIAO -slug: /hardware/catalog/boards/unverified/arm_seeeduino_xiao +slug: /firmware/hardware/catalog/boards/unverified/arm_seeeduino_xiao description: IoT board Seeeduino XIAO, compatible with Golioth at unverified level. image: /img/boards/arm/seeeduino_xiao.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `seeeduino_xiao` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_segger_trb_stm32f407.md b/docs/firmware/hardware/6-catalog/unverified/arm_segger_trb_stm32f407.md index 874ee388..72d5305e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_segger_trb_stm32f407.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_segger_trb_stm32f407.md @@ -1,7 +1,7 @@ --- id: arm_segger_trb_stm32f407 title: Cortex-M Trace Reference Board V1.2 -slug: /hardware/catalog/boards/unverified/arm_segger_trb_stm32f407 +slug: /firmware/hardware/catalog/boards/unverified/arm_segger_trb_stm32f407 description: IoT board Cortex-M Trace Reference Board V1.2, compatible with Golioth at unverified level. image: /img/boards/arm/segger_trb_stm32f407.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `segger_trb_stm32f407` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 192 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_sensortile_box.md b/docs/firmware/hardware/6-catalog/unverified/arm_sensortile_box.md index e6cfc1f7..ea1b5100 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_sensortile_box.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_sensortile_box.md @@ -1,7 +1,7 @@ --- id: arm_sensortile_box title: ST SensorTile.box -slug: /hardware/catalog/boards/unverified/arm_sensortile_box +slug: /firmware/hardware/catalog/boards/unverified/arm_sensortile_box description: IoT board ST SensorTile.box, compatible with Golioth at unverified level. image: /img/boards/arm/sensortile_box.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `sensortile_box` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 640 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_sensortile_box_pro.md b/docs/firmware/hardware/6-catalog/unverified/arm_sensortile_box_pro.md new file mode 100644 index 00000000..35a79666 --- /dev/null +++ b/docs/firmware/hardware/6-catalog/unverified/arm_sensortile_box_pro.md @@ -0,0 +1,44 @@ +--- +id: arm_sensortile_box_pro +title: ST SensorTile.box Pro +slug: /firmware/hardware/catalog/boards/unverified/arm_sensortile_box_pro +description: IoT board ST SensorTile.box Pro, compatible with Golioth at unverified level. +image: /img/boards/arm/sensortile_box_pro.jpg +sidebar_class_name: hide-item +--- + +[//]: # (This is an auto-generated file, do not edit! Changes to it will be lost upon re-generation) + +![ST SensorTile.box Pro!](/img/boards/arm/sensortile_box_pro.jpg "ST SensorTile.box Pro") + +| | Board properties | +| ------------- | -------------------- | +| Board ID | `sensortile_box_pro` | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | +| Architecture | ARM | +| RAM* | 640 kB | +| Flash* | 2048 kB | + +\* values are as reported by Zephyr `.yaml` board files, which don't represent the overall available resources + + + +## Supported features + +* pwm +* spi +* i2c +* gpio +* usb device +* nvs +* counter + +## Supported toolchains + +* zephyr +* gnuarmemb +* xtools + +## Official Zephyr docs + +[ST SensorTile.box Pro (sensortile_box_pro)](https://docs.zephyrproject.org/latest/boards/arm/sensortile_box_pro/doc/index.html) diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_serpente.md b/docs/firmware/hardware/6-catalog/unverified/arm_serpente.md index d946a4fa..ee22213e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_serpente.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_serpente.md @@ -1,7 +1,7 @@ --- id: arm_serpente title: SERPENTE -slug: /hardware/catalog/boards/unverified/arm_serpente +slug: /firmware/hardware/catalog/boards/unverified/arm_serpente description: IoT board SERPENTE, compatible with Golioth at unverified level. image: /img/boards/arm/serpente.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `serpente` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_sparkfun_pro_micro_rp2040.md b/docs/firmware/hardware/6-catalog/unverified/arm_sparkfun_pro_micro_rp2040.md index a11077ab..38229342 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_sparkfun_pro_micro_rp2040.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_sparkfun_pro_micro_rp2040.md @@ -1,7 +1,7 @@ --- id: arm_sparkfun_pro_micro_rp2040 title: Sparkfun Pro Micro RP2040 -slug: /hardware/catalog/boards/unverified/arm_sparkfun_pro_micro_rp2040 +slug: /firmware/hardware/catalog/boards/unverified/arm_sparkfun_pro_micro_rp2040 description: IoT board Sparkfun Pro Micro RP2040, compatible with Golioth at unverified level. image: /img/boards/arm/sparkfun_pro_micro_rp2040.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `sparkfun_pro_micro_rp2040` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 264 kB | | Flash* | 16384 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_sparkfun_thing_plus_nrf9160.md b/docs/firmware/hardware/6-catalog/unverified/arm_sparkfun_thing_plus_nrf9160.md index baf9aefd..a281b5e3 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_sparkfun_thing_plus_nrf9160.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_sparkfun_thing_plus_nrf9160.md @@ -1,7 +1,7 @@ --- id: arm_sparkfun_thing_plus_nrf9160 title: Sparkfun-Thing-Plus-nRF9160 -slug: /hardware/catalog/boards/unverified/arm_sparkfun_thing_plus_nrf9160 +slug: /firmware/hardware/catalog/boards/unverified/arm_sparkfun_thing_plus_nrf9160 description: IoT board Sparkfun-Thing-Plus-nRF9160, compatible with Golioth at unverified level. image: /img/boards/arm/sparkfun_thing_plus_nrf9160.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `sparkfun_thing_plus_nrf9160` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_steval_fcu001v1.md b/docs/firmware/hardware/6-catalog/unverified/arm_steval_fcu001v1.md index 7aea1dc2..d0f5a9ef 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_steval_fcu001v1.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_steval_fcu001v1.md @@ -1,7 +1,7 @@ --- id: arm_steval_fcu001v1 title: ST STM32 Flight Controller Unit -slug: /hardware/catalog/boards/unverified/arm_steval_fcu001v1 +slug: /firmware/hardware/catalog/boards/unverified/arm_steval_fcu001v1 description: IoT board ST STM32 Flight Controller Unit, compatible with Golioth at unverified level. image: /img/boards/arm/steval_fcu001v1.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `steval_fcu001v1` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm3210c_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm3210c_eval.md index f1024e40..9355dcbc 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm3210c_eval.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm3210c_eval.md @@ -1,7 +1,7 @@ --- id: arm_stm3210c_eval title: ST STM3210C Evaluation -slug: /hardware/catalog/boards/unverified/arm_stm3210c_eval +slug: /firmware/hardware/catalog/boards/unverified/arm_stm3210c_eval description: IoT board ST STM3210C Evaluation, compatible with Golioth at unverified level. image: /img/boards/arm/stm3210c_eval.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm3210c_eval` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32373c_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32373c_eval.md index fff18239..e2283e15 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32373c_eval.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32373c_eval.md @@ -1,7 +1,7 @@ --- id: arm_stm32373c_eval title: ST STM32373C Evaluation -slug: /hardware/catalog/boards/unverified/arm_stm32373c_eval +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32373c_eval description: IoT board ST STM32373C Evaluation, compatible with Golioth at unverified level. image: /img/boards/arm/stm32373c_eval.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32373c_eval` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32_min_dev.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32_min_dev.md index 53aed10f..454b0400 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32_min_dev.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32_min_dev.md @@ -1,7 +1,7 @@ --- id: arm_stm32_min_dev title: stm32_min_dev -slug: /hardware/catalog/boards/unverified/arm_stm32_min_dev +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32_min_dev description: IoT board stm32_min_dev, compatible with Golioth at unverified level. image: /img/boards/arm/stm32_min_dev.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32_min_dev` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f030_demo.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f030_demo.md index 3211b69a..910e675e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f030_demo.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f030_demo.md @@ -1,7 +1,7 @@ --- id: arm_stm32f030_demo title: STM32F030 DEMO BOARD -slug: /hardware/catalog/boards/unverified/arm_stm32f030_demo +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32f030_demo description: IoT board STM32F030 DEMO BOARD, compatible with Golioth at unverified level. image: /img/boards/arm/stm32f030_demo.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32f030_demo` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 4 kB | | Flash* | 16 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f072_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f072_eval.md index ab591d6e..01b707ec 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f072_eval.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f072_eval.md @@ -1,7 +1,7 @@ --- id: arm_stm32f072_eval title: ST STM32F072 Evaluation -slug: /hardware/catalog/boards/unverified/arm_stm32f072_eval +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32f072_eval description: IoT board ST STM32F072 Evaluation, compatible with Golioth at unverified level. image: /img/boards/arm/stm32f072_eval.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32f072_eval` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 16 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f072b_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f072b_disco.md index 8a50b8f3..e0ab8c87 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f072b_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f072b_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32f072b_disco title: ST STM32F072B Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32f072b_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32f072b_disco description: IoT board ST STM32F072B Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32f072b_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32f072b_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 16 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f0_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f0_disco.md index 5971bdf0..1dd13493 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f0_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f0_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32f0_disco title: ST STM32F0 Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32f0_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32f0_disco description: IoT board ST STM32F0 Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32f0_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32f0_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 8 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f103_mini.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f103_mini.md index 92665091..78a58c53 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f103_mini.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f103_mini.md @@ -1,7 +1,7 @@ --- id: arm_stm32f103_mini title: STM32F103RCT6 Mini Board -slug: /hardware/catalog/boards/unverified/arm_stm32f103_mini +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32f103_mini description: IoT board STM32F103RCT6 Mini Board, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32f103_mini` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 48 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f3_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f3_disco.md index 6154f295..9149fbc1 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f3_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f3_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32f3_disco title: ST STM32F3 Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32f3_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32f3_disco description: IoT board ST STM32F3 Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32f3_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32f3_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 40 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f3_seco_d23.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f3_seco_d23.md index 42bbc349..d6995555 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f3_seco_d23.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f3_seco_d23.md @@ -1,7 +1,7 @@ --- id: arm_stm32f3_seco_d23 title: SECO JUNO SBC-D23 (STM32F302) -slug: /hardware/catalog/boards/unverified/arm_stm32f3_seco_d23 +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32f3_seco_d23 description: IoT board SECO JUNO SBC-D23 (STM32F302), compatible with Golioth at unverified level. image: /img/boards/arm/stm32f3_seco_d23.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32f3_seco_d23` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 40 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f401_mini.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f401_mini.md index 126874a4..b33abada 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f401_mini.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f401_mini.md @@ -1,7 +1,7 @@ --- id: arm_stm32f401_mini title: STM32 Mini F401 -slug: /hardware/catalog/boards/unverified/arm_stm32f401_mini +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32f401_mini description: IoT board STM32 Mini F401, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32f401_mini` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f411e_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f411e_disco.md index 5216519f..c62a10ac 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f411e_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f411e_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32f411e_disco title: ST STM32F411E Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32f411e_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32f411e_disco description: IoT board ST STM32F411E Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32f411e_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32f411e_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f412g_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f412g_disco.md index 021fbbef..ba386ccd 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f412g_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f412g_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32f412g_disco title: ST STM32F412G Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32f412g_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32f412g_disco description: IoT board ST STM32F412G Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32f412g_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32f412g_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f429i_disc1.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f429i_disc1.md index 0ef448b8..95745f9a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f429i_disc1.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f429i_disc1.md @@ -1,7 +1,7 @@ --- id: arm_stm32f429i_disc1 title: ST STM32F429I Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32f429i_disc1 +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32f429i_disc1 description: IoT board ST STM32F429I Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32f429i_disc1.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32f429i_disc1` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 192 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f469i_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f469i_disco.md index 9e62e780..91303bc8 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f469i_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f469i_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32f469i_disco title: ST STM32F469I Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32f469i_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32f469i_disco description: IoT board ST STM32F469I Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32f469i_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32f469i_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 320 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f4_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f4_disco.md index b1bf0497..78a02b9f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f4_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f4_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32f4_disco title: ST STM32F4 Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32f4_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32f4_disco description: IoT board ST STM32F4 Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32f4_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32f4_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 128 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f723e_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f723e_disco.md index 5c32a867..1fd83aa5 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f723e_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f723e_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32f723e_disco title: ST STM32F723E Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32f723e_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32f723e_disco description: IoT board ST STM32F723E Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32f723e_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32f723e_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 192 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f746g_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f746g_disco.md index 8f571481..5f0aacbe 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f746g_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f746g_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32f746g_disco title: ST STM32F746G Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32f746g_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32f746g_disco description: IoT board ST STM32F746G Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32f746g_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32f746g_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f7508_dk.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f7508_dk.md index 2e0b6a41..e51aca5f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f7508_dk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f7508_dk.md @@ -1,7 +1,7 @@ --- id: arm_stm32f7508_dk title: ST STM32F7508 DK -slug: /hardware/catalog/boards/unverified/arm_stm32f7508_dk +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32f7508_dk description: IoT board ST STM32F7508 DK, compatible with Golioth at unverified level. image: /img/boards/arm/stm32f7508_dk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32f7508_dk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 320 kB | | Flash* | 64 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f769i_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f769i_disco.md index f8c52683..21d42b25 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32f769i_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32f769i_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32f769i_disco title: ST STM32F769I Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32f769i_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32f769i_disco description: IoT board ST STM32F769I Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32f769i_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32f769i_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 384 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32g0316_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32g0316_disco.md index 79a88194..8b25a479 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32g0316_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32g0316_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32g0316_disco title: ST STM32G0316 Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32g0316_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32g0316_disco description: IoT board ST STM32G0316 Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32g0316_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32g0316_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 8 kB | | Flash* | 32 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32g071b_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32g071b_disco.md index 28659528..49b1add9 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32g071b_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32g071b_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32g071b_disco title: ST STM32G071B Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32g071b_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32g071b_disco description: IoT board ST STM32G071B Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32g071b_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32g071b_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 36 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32g081b_eval.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32g081b_eval.md index ff79da4b..80d77422 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32g081b_eval.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32g081b_eval.md @@ -1,7 +1,7 @@ --- id: arm_stm32g081b_eval title: ST STM32G081B Evaluation -slug: /hardware/catalog/boards/unverified/arm_stm32g081b_eval +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32g081b_eval description: IoT board ST STM32G081B Evaluation, compatible with Golioth at unverified level. image: /img/boards/arm/stm32g081b_eval.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32g081b_eval` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32h573i_dk.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32h573i_dk.md index 69b9c9b2..61809a34 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32h573i_dk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32h573i_dk.md @@ -1,7 +1,7 @@ --- id: arm_stm32h573i_dk title: ST STM32H573I Discovery Kit -slug: /hardware/catalog/boards/unverified/arm_stm32h573i_dk +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32h573i_dk description: IoT board ST STM32H573I Discovery Kit, compatible with Golioth at unverified level. image: /img/boards/arm/stm32h573i_dk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32h573i_dk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 640 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32h735g_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32h735g_disco.md index a6168963..96b96a6f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32h735g_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32h735g_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32h735g_disco title: ST STM32H735G Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32h735g_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32h735g_disco description: IoT board ST STM32H735G Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32h735g_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32h735g_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 368 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32h747i_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32h747i_disco.md index a7e9f31a..4d77544d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32h747i_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32h747i_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32h747i_disco title: stm32h747i_disco -slug: /hardware/catalog/boards/unverified/arm_stm32h747i_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32h747i_disco description: IoT board stm32h747i_disco, compatible with Golioth at unverified level. image: /img/boards/arm/stm32h747i_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32h747i_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32h7b3i_dk.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32h7b3i_dk.md index 3ddb1b13..501d342a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32h7b3i_dk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32h7b3i_dk.md @@ -1,7 +1,7 @@ --- id: arm_stm32h7b3i_dk title: ST STM32H7B3I Discovery Kit -slug: /hardware/catalog/boards/unverified/arm_stm32h7b3i_dk +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32h7b3i_dk description: IoT board ST STM32H7B3I Discovery Kit, compatible with Golioth at unverified level. image: /img/boards/arm/stm32h7b3i_dk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32h7b3i_dk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 1376 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32l1_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32l1_disco.md index 05d1f88c..811f891b 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32l1_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32l1_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32l1_disco title: ST STM32L1 Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32l1_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32l1_disco description: IoT board ST STM32L1 Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32l1_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32l1_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 16 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32l476g_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32l476g_disco.md index 3e07594c..eb9fd628 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32l476g_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32l476g_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32l476g_disco title: ST STM32L476G Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32l476g_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32l476g_disco description: IoT board ST STM32L476G Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32l476g_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32l476g_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 96 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32l496g_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32l496g_disco.md index 1e3d9147..066a5ec0 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32l496g_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32l496g_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32l496g_disco title: ST STM32L496G Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32l496g_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32l496g_disco description: IoT board ST STM32L496G Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32l496g_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32l496g_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 320 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32l4r9i_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32l4r9i_disco.md new file mode 100644 index 00000000..2717841d --- /dev/null +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32l4r9i_disco.md @@ -0,0 +1,50 @@ +--- +id: arm_stm32l4r9i_disco +title: ST STM32L4R9I Discovery +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32l4r9i_disco +description: IoT board ST STM32L4R9I Discovery, compatible with Golioth at unverified level. +image: /img/boards/arm/stm32l4r9i_disco.jpg +sidebar_class_name: hide-item +--- + +[//]: # (This is an auto-generated file, do not edit! Changes to it will be lost upon re-generation) + +![ST STM32L4R9I Discovery!](/img/boards/arm/stm32l4r9i_disco.jpg "ST STM32L4R9I Discovery") + +| | Board properties | +| ------------- | -------------------- | +| Board ID | `stm32l4r9i_disco` | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | +| Architecture | ARM | +| RAM* | 640 kB | +| Flash* | 2048 kB | + +\* values are as reported by Zephyr `.yaml` board files, which don't represent the overall available resources + + + +## Supported features + +* adc +* arduino_gpio +* arduino_i2c +* arduino_spi +* gpio +* i2c +* pwm +* rtc +* sdhc +* spi +* uart +* usb +* usb_device + +## Supported toolchains + +* zephyr +* gnuarmemb +* xtools + +## Official Zephyr docs + +[ST STM32L4R9I Discovery (stm32l4r9i_disco)](https://docs.zephyrproject.org/latest/boards/arm/stm32l4r9i_disco/doc/index.html) diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32l562e_dk.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32l562e_dk.md index 71ab8fd4..ba31fe9a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32l562e_dk.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32l562e_dk.md @@ -1,7 +1,7 @@ --- id: arm_stm32l562e_dk title: ST STM32L562E-DK Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32l562e_dk +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32l562e_dk description: IoT board ST STM32L562E-DK Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32l562e_dk.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32l562e_dk` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 192 kB | | Flash* | 512 kB | @@ -34,6 +34,7 @@ sidebar_class_name: hide-item * dac * adc * spi +* ble * dma * usart * arduino_spi diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32mp157c_dk2.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32mp157c_dk2.md index 869eafcb..0abb6c7d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32mp157c_dk2.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32mp157c_dk2.md @@ -1,7 +1,7 @@ --- id: arm_stm32mp157c_dk2 title: ST STM32MP157C-DK2 Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32mp157c_dk2 +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32mp157c_dk2 description: IoT board ST STM32MP157C-DK2 Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32mp157c_dk2` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 64 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32u5a9j_dk.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32u5a9j_dk.md new file mode 100644 index 00000000..af5517c2 --- /dev/null +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32u5a9j_dk.md @@ -0,0 +1,48 @@ +--- +id: arm_stm32u5a9j_dk +title: ST STM32U5A9J-DK Discovery Kit +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32u5a9j_dk +description: IoT board ST STM32U5A9J-DK Discovery Kit, compatible with Golioth at unverified level. +image: /img/boards/arm/null +sidebar_class_name: hide-item +--- + +[//]: # (This is an auto-generated file, do not edit! Changes to it will be lost upon re-generation) + + + +| | Board properties | +| ------------- | -------------------- | +| Board ID | `stm32u5a9j_dk` | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | +| Architecture | ARM | +| RAM* | 2496 kB | +| Flash* | 4096 kB | + +\* values are as reported by Zephyr `.yaml` board files, which don't represent the overall available resources + + + +## Supported features + +* gpio +* led +* button +* adc +* uart +* usart +* lpuart +* watchdog +* spi +* i2c +* flash +* sdmmc + +## Supported toolchains + +* zephyr +* gnuarmemb + +## Official Zephyr docs + +[ST STM32U5A9J-DK Discovery Kit (stm32u5a9j_dk)](https://docs.zephyrproject.org/latest/boards/arm/stm32u5a9j_dk/doc/index.html) diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_stm32vl_disco.md b/docs/firmware/hardware/6-catalog/unverified/arm_stm32vl_disco.md index 4e95f030..4cd62a99 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_stm32vl_disco.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_stm32vl_disco.md @@ -1,7 +1,7 @@ --- id: arm_stm32vl_disco title: ST STM32VL Discovery -slug: /hardware/catalog/boards/unverified/arm_stm32vl_disco +slug: /firmware/hardware/catalog/boards/unverified/arm_stm32vl_disco description: IoT board ST STM32VL Discovery, compatible with Golioth at unverified level. image: /img/boards/arm/stm32vl_disco.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stm32vl_disco` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 8 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_swan_r5.md b/docs/firmware/hardware/6-catalog/unverified/arm_swan_r5.md index 38ff0258..ef245090 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_swan_r5.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_swan_r5.md @@ -1,7 +1,7 @@ --- id: arm_swan_r5 title: Blues Wireless Swan -slug: /hardware/catalog/boards/unverified/arm_swan_r5 +slug: /firmware/hardware/catalog/boards/unverified/arm_swan_r5 description: IoT board Blues Wireless Swan, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `swan_r5` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 640 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_tdk_robokit1.md b/docs/firmware/hardware/6-catalog/unverified/arm_tdk_robokit1.md index 7b67b012..b8735b90 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_tdk_robokit1.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_tdk_robokit1.md @@ -1,7 +1,7 @@ --- id: arm_tdk_robokit1 title: TDK RoboKit1 -slug: /hardware/catalog/boards/unverified/arm_tdk_robokit1 +slug: /firmware/hardware/catalog/boards/unverified/arm_tdk_robokit1 description: IoT board TDK RoboKit1, compatible with Golioth at unverified level. image: /img/boards/arm/tdk_robokit1.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `tdk_robokit1` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 384 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_teensy4.md b/docs/firmware/hardware/6-catalog/unverified/arm_teensy4.md index d45036ca..e1a69677 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_teensy4.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_teensy4.md @@ -1,7 +1,7 @@ --- id: arm_teensy4 title: teensy4 -slug: /hardware/catalog/boards/unverified/arm_teensy4 +slug: /firmware/hardware/catalog/boards/unverified/arm_teensy4 description: IoT board teensy4, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `teensy4` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_thingy52_nrf52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_thingy52_nrf52832.md index 5e1c70cb..77b1a0f6 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_thingy52_nrf52832.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_thingy52_nrf52832.md @@ -1,7 +1,7 @@ --- id: arm_thingy52_nrf52832 title: Thingy52-NRF52832 -slug: /hardware/catalog/boards/unverified/arm_thingy52_nrf52832 +slug: /firmware/hardware/catalog/boards/unverified/arm_thingy52_nrf52832 description: IoT board Thingy52-NRF52832, compatible with Golioth at unverified level. image: /img/boards/arm/thingy52_nrf52832.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `thingy52_nrf52832` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_thingy53_nrf5340.md b/docs/firmware/hardware/6-catalog/unverified/arm_thingy53_nrf5340.md index 981c7088..c3613374 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_thingy53_nrf5340.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_thingy53_nrf5340.md @@ -1,7 +1,7 @@ --- id: arm_thingy53_nrf5340 title: thingy53_nrf5340 -slug: /hardware/catalog/boards/unverified/arm_thingy53_nrf5340 +slug: /firmware/hardware/catalog/boards/unverified/arm_thingy53_nrf5340 description: IoT board thingy53_nrf5340, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `thingy53_nrf5340` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_twr_ke18f.md b/docs/firmware/hardware/6-catalog/unverified/arm_twr_ke18f.md index 8fb1181b..6b792630 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_twr_ke18f.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_twr_ke18f.md @@ -1,7 +1,7 @@ --- id: arm_twr_ke18f title: NXP TWR-KE18F -slug: /hardware/catalog/boards/unverified/arm_twr_ke18f +slug: /firmware/hardware/catalog/boards/unverified/arm_twr_ke18f description: IoT board NXP TWR-KE18F, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `twr_ke18f` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_twr_kv58f220m.md b/docs/firmware/hardware/6-catalog/unverified/arm_twr_kv58f220m.md index d94fff5d..c8b0169c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_twr_kv58f220m.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_twr_kv58f220m.md @@ -1,7 +1,7 @@ --- id: arm_twr_kv58f220m title: NXP TWR-KV58F220M -slug: /hardware/catalog/boards/unverified/arm_twr_kv58f220m +slug: /firmware/hardware/catalog/boards/unverified/arm_twr_kv58f220m description: IoT board NXP TWR-KV58F220M, compatible with Golioth at unverified level. image: /img/boards/arm/twr_kv58f220m.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `twr_kv58f220m` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd300eval_nrf52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd300eval_nrf52832.md index 14d36165..6a97e224 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd300eval_nrf52832.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd300eval_nrf52832.md @@ -1,7 +1,7 @@ --- id: arm_ubx_bmd300eval_nrf52832 title: UBX_BMD300EVAL_NRF52832 -slug: /hardware/catalog/boards/unverified/arm_ubx_bmd300eval_nrf52832 +slug: /firmware/hardware/catalog/boards/unverified/arm_ubx_bmd300eval_nrf52832 description: IoT board UBX_BMD300EVAL_NRF52832, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `ubx_bmd300eval_nrf52832` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd330eval_nrf52810.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd330eval_nrf52810.md index 5536d9e3..41cc576a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd330eval_nrf52810.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd330eval_nrf52810.md @@ -1,7 +1,7 @@ --- id: arm_ubx_bmd330eval_nrf52810 title: UBX_BMD330EVAL_NRF52810 -slug: /hardware/catalog/boards/unverified/arm_ubx_bmd330eval_nrf52810 +slug: /firmware/hardware/catalog/boards/unverified/arm_ubx_bmd330eval_nrf52810 description: IoT board UBX_BMD330EVAL_NRF52810, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `ubx_bmd330eval_nrf52810` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 24 kB | | Flash* | 192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd340eval_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd340eval_nrf52840.md index 8ddbab72..49541361 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd340eval_nrf52840.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd340eval_nrf52840.md @@ -1,7 +1,7 @@ --- id: arm_ubx_bmd340eval_nrf52840 title: UBX_BMD340EVAL_NRF52840 -slug: /hardware/catalog/boards/unverified/arm_ubx_bmd340eval_nrf52840 +slug: /firmware/hardware/catalog/boards/unverified/arm_ubx_bmd340eval_nrf52840 description: IoT board UBX_BMD340EVAL_NRF52840, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `ubx_bmd340eval_nrf52840` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd345eval_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd345eval_nrf52840.md index acba4cf9..696fd2af 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd345eval_nrf52840.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd345eval_nrf52840.md @@ -1,7 +1,7 @@ --- id: arm_ubx_bmd345eval_nrf52840 title: BMD-345-EVAL -slug: /hardware/catalog/boards/unverified/arm_ubx_bmd345eval_nrf52840 +slug: /firmware/hardware/catalog/boards/unverified/arm_ubx_bmd345eval_nrf52840 description: IoT board BMD-345-EVAL, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `ubx_bmd345eval_nrf52840` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd360eval_nrf52811.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd360eval_nrf52811.md index 13432c64..f4d25f91 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd360eval_nrf52811.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd360eval_nrf52811.md @@ -1,7 +1,7 @@ --- id: arm_ubx_bmd360eval_nrf52811 title: UBX_BMD360EVAL_NRF52811 -slug: /hardware/catalog/boards/unverified/arm_ubx_bmd360eval_nrf52811 +slug: /firmware/hardware/catalog/boards/unverified/arm_ubx_bmd360eval_nrf52811 description: IoT board UBX_BMD360EVAL_NRF52811, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `ubx_bmd360eval_nrf52811` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 24 kB | | Flash* | 192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd380eval_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd380eval_nrf52840.md index 3b27a8d0..dc9f51ac 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd380eval_nrf52840.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_bmd380eval_nrf52840.md @@ -1,7 +1,7 @@ --- id: arm_ubx_bmd380eval_nrf52840 title: UBX_BMD380EVAL_NRF52840 -slug: /hardware/catalog/boards/unverified/arm_ubx_bmd380eval_nrf52840 +slug: /firmware/hardware/catalog/boards/unverified/arm_ubx_bmd380eval_nrf52840 description: IoT board UBX_BMD380EVAL_NRF52840, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `ubx_bmd380eval_nrf52840` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkannab1_nrf52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkannab1_nrf52832.md index dfb0c143..b01a0ad8 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkannab1_nrf52832.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkannab1_nrf52832.md @@ -1,7 +1,7 @@ --- id: arm_ubx_evkannab1_nrf52832 title: UBX-EVKANNAB1-NRF52832 -slug: /hardware/catalog/boards/unverified/arm_ubx_evkannab1_nrf52832 +slug: /firmware/hardware/catalog/boards/unverified/arm_ubx_evkannab1_nrf52832 description: IoT board UBX-EVKANNAB1-NRF52832, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `ubx_evkannab1_nrf52832` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab1_nrf52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab1_nrf52832.md index 9081d2f5..02d00602 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab1_nrf52832.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab1_nrf52832.md @@ -1,7 +1,7 @@ --- id: arm_ubx_evkninab1_nrf52832 title: UBX-EVKNINAB1-NRF52832 -slug: /hardware/catalog/boards/unverified/arm_ubx_evkninab1_nrf52832 +slug: /firmware/hardware/catalog/boards/unverified/arm_ubx_evkninab1_nrf52832 description: IoT board UBX-EVKNINAB1-NRF52832, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `ubx_evkninab1_nrf52832` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab3_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab3_nrf52840.md index bc0ec530..ef849e65 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab3_nrf52840.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab3_nrf52840.md @@ -1,7 +1,7 @@ --- id: arm_ubx_evkninab3_nrf52840 title: UBX-EVKNINAB3-NRF52840 -slug: /hardware/catalog/boards/unverified/arm_ubx_evkninab3_nrf52840 +slug: /firmware/hardware/catalog/boards/unverified/arm_ubx_evkninab3_nrf52840 description: IoT board UBX-EVKNINAB3-NRF52840, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `ubx_evkninab3_nrf52840` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab4_nrf52833.md b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab4_nrf52833.md index 2dc067b2..3f4b776c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab4_nrf52833.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_ubx_evkninab4_nrf52833.md @@ -1,7 +1,7 @@ --- id: arm_ubx_evkninab4_nrf52833 title: EVK-NINA-B4-NRF52833 -slug: /hardware/catalog/boards/unverified/arm_ubx_evkninab4_nrf52833 +slug: /firmware/hardware/catalog/boards/unverified/arm_ubx_evkninab4_nrf52833 description: IoT board EVK-NINA-B4-NRF52833, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `ubx_evkninab4_nrf52833` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_udoo_neo_full_m4.md b/docs/firmware/hardware/6-catalog/unverified/arm_udoo_neo_full_m4.md index 0a2dcc65..72b5ac69 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_udoo_neo_full_m4.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_udoo_neo_full_m4.md @@ -1,7 +1,7 @@ --- id: arm_udoo_neo_full_m4 title: UDOO Neo Full -slug: /hardware/catalog/boards/unverified/arm_udoo_neo_full_m4 +slug: /firmware/hardware/catalog/boards/unverified/arm_udoo_neo_full_m4 description: IoT board UDOO Neo Full, compatible with Golioth at unverified level. image: /img/boards/arm/udoo_neo_full_m4.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `udoo_neo_full_m4` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_usb_kw24d512.md b/docs/firmware/hardware/6-catalog/unverified/arm_usb_kw24d512.md index a1eedf20..1d160338 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_usb_kw24d512.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_usb_kw24d512.md @@ -1,7 +1,7 @@ --- id: arm_usb_kw24d512 title: NXP USB-KW24D512 -slug: /hardware/catalog/boards/unverified/arm_usb_kw24d512 +slug: /firmware/hardware/catalog/boards/unverified/arm_usb_kw24d512 description: IoT board NXP USB-KW24D512, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `usb_kw24d512` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_v2m_beetle.md b/docs/firmware/hardware/6-catalog/unverified/arm_v2m_beetle.md index 2283256b..faa6b772 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_v2m_beetle.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_v2m_beetle.md @@ -1,7 +1,7 @@ --- id: arm_v2m_beetle title: V2M Beetle -slug: /hardware/catalog/boards/unverified/arm_v2m_beetle +slug: /firmware/hardware/catalog/boards/unverified/arm_v2m_beetle description: IoT board V2M Beetle, compatible with Golioth at unverified level. image: /img/boards/arm/v2m_beetle.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `v2m_beetle` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_v2m_musca_b1.md b/docs/firmware/hardware/6-catalog/unverified/arm_v2m_musca_b1.md index 6929ff65..fbcd8e85 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_v2m_musca_b1.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_v2m_musca_b1.md @@ -1,7 +1,7 @@ --- id: arm_v2m_musca_b1 title: ARM V2M MUSCA B1 -slug: /hardware/catalog/boards/unverified/arm_v2m_musca_b1 +slug: /firmware/hardware/catalog/boards/unverified/arm_v2m_musca_b1 description: IoT board ARM V2M MUSCA B1, compatible with Golioth at unverified level. image: /img/boards/arm/v2m_musca_b1.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `v2m_musca_b1` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_v2m_musca_s1.md b/docs/firmware/hardware/6-catalog/unverified/arm_v2m_musca_s1.md index 97555a74..f3584e9e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_v2m_musca_s1.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_v2m_musca_s1.md @@ -1,7 +1,7 @@ --- id: arm_v2m_musca_s1 title: ARM V2M MUSCA-S1 -slug: /hardware/catalog/boards/unverified/arm_v2m_musca_s1 +slug: /firmware/hardware/catalog/boards/unverified/arm_v2m_musca_s1 description: IoT board ARM V2M MUSCA-S1, compatible with Golioth at unverified level. image: /img/boards/arm/v2m_musca_s1.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `v2m_musca_s1` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_verdin_imx8mp_m7.md b/docs/firmware/hardware/6-catalog/unverified/arm_verdin_imx8mp_m7.md new file mode 100644 index 00000000..29ff7408 --- /dev/null +++ b/docs/firmware/hardware/6-catalog/unverified/arm_verdin_imx8mp_m7.md @@ -0,0 +1,36 @@ +--- +id: arm_verdin_imx8mp_m7 +title: verdin_imx8mp_m7 +slug: /firmware/hardware/catalog/boards/unverified/arm_verdin_imx8mp_m7 +description: IoT board verdin_imx8mp_m7, compatible with Golioth at unverified level. +image: /img/boards/arm/null +sidebar_class_name: hide-item +--- + +[//]: # (This is an auto-generated file, do not edit! Changes to it will be lost upon re-generation) + + + +| | Board properties | +| ------------- | -------------------- | +| Board ID | `verdin_imx8mp_m7` | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | +| Architecture | ARM | +| RAM* | N/A | +| Flash* | N/A | + +\* values are as reported by Zephyr `.yaml` board files, which don't represent the overall available resources + + + +## Supported features + +List of supported features is not available. + +## Supported toolchains + +List of supported toolchains is not available. + +## Official Zephyr docs + +[verdin_imx8mp_m7 (verdin_imx8mp_m7)](https://docs.zephyrproject.org/latest/boards/arm/verdin_imx8mp_m7/doc/index.html) diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_vmu_rt1170.md b/docs/firmware/hardware/6-catalog/unverified/arm_vmu_rt1170.md index 30ac4f92..ce88d14b 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_vmu_rt1170.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_vmu_rt1170.md @@ -1,7 +1,7 @@ --- id: arm_vmu_rt1170 title: NXP VMU RT1170 -slug: /hardware/catalog/boards/unverified/arm_vmu_rt1170 +slug: /firmware/hardware/catalog/boards/unverified/arm_vmu_rt1170 description: IoT board NXP VMU RT1170, compatible with Golioth at unverified level. image: /img/boards/arm/vmu_rt1170.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `vmu_rt1170` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 65536 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_warp7_m4.md b/docs/firmware/hardware/6-catalog/unverified/arm_warp7_m4.md index 0ef53be6..0491736d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_warp7_m4.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_warp7_m4.md @@ -1,7 +1,7 @@ --- id: arm_warp7_m4 title: WaRP7 IMX7S -slug: /hardware/catalog/boards/unverified/arm_warp7_m4 +slug: /firmware/hardware/catalog/boards/unverified/arm_warp7_m4 description: IoT board WaRP7 IMX7S, compatible with Golioth at unverified level. image: /img/boards/arm/warp7_m4.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `warp7_m4` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 32 kB | | Flash* | 32 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_waveshare_open103z.md b/docs/firmware/hardware/6-catalog/unverified/arm_waveshare_open103z.md index 3a51016f..18ac32ff 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_waveshare_open103z.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_waveshare_open103z.md @@ -1,7 +1,7 @@ --- id: arm_waveshare_open103z title: Waveshare Open103Z -slug: /hardware/catalog/boards/unverified/arm_waveshare_open103z +slug: /firmware/hardware/catalog/boards/unverified/arm_waveshare_open103z description: IoT board Waveshare Open103Z, compatible with Golioth at unverified level. image: /img/boards/arm/waveshare_open103z.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `waveshare_open103z` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_we_ophelia1ev_nrf52805.md b/docs/firmware/hardware/6-catalog/unverified/arm_we_ophelia1ev_nrf52805.md index 1e095770..6a185725 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_we_ophelia1ev_nrf52805.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_we_ophelia1ev_nrf52805.md @@ -1,7 +1,7 @@ --- id: arm_we_ophelia1ev_nrf52805 title: we_ophelia1ev_nrf52805 -slug: /hardware/catalog/boards/unverified/arm_we_ophelia1ev_nrf52805 +slug: /firmware/hardware/catalog/boards/unverified/arm_we_ophelia1ev_nrf52805 description: IoT board we_ophelia1ev_nrf52805, compatible with Golioth at unverified level. image: /img/boards/arm/we_ophelia1ev_nrf52805.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `we_ophelia1ev_nrf52805` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 24 kB | | Flash* | 192 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_we_proteus2ev_nrf52832.md b/docs/firmware/hardware/6-catalog/unverified/arm_we_proteus2ev_nrf52832.md index 761231e6..6a788be9 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_we_proteus2ev_nrf52832.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_we_proteus2ev_nrf52832.md @@ -1,7 +1,7 @@ --- id: arm_we_proteus2ev_nrf52832 title: we_proteus2ev_nrf52832 -slug: /hardware/catalog/boards/unverified/arm_we_proteus2ev_nrf52832 +slug: /firmware/hardware/catalog/boards/unverified/arm_we_proteus2ev_nrf52832 description: IoT board we_proteus2ev_nrf52832, compatible with Golioth at unverified level. image: /img/boards/arm/we_proteus2ev_nrf52832.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `we_proteus2ev_nrf52832` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_we_proteus3ev_nrf52840.md b/docs/firmware/hardware/6-catalog/unverified/arm_we_proteus3ev_nrf52840.md index e5a914c3..f58389e4 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_we_proteus3ev_nrf52840.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_we_proteus3ev_nrf52840.md @@ -1,7 +1,7 @@ --- id: arm_we_proteus3ev_nrf52840 title: we_proteus3ev_nrf52840 -slug: /hardware/catalog/boards/unverified/arm_we_proteus3ev_nrf52840 +slug: /firmware/hardware/catalog/boards/unverified/arm_we_proteus3ev_nrf52840 description: IoT board we_proteus3ev_nrf52840, compatible with Golioth at unverified level. image: /img/boards/arm/we_proteus3ev_nrf52840.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `we_proteus3ev_nrf52840` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_weact_stm32g431_core.md b/docs/firmware/hardware/6-catalog/unverified/arm_weact_stm32g431_core.md new file mode 100644 index 00000000..9b71daad --- /dev/null +++ b/docs/firmware/hardware/6-catalog/unverified/arm_weact_stm32g431_core.md @@ -0,0 +1,45 @@ +--- +id: arm_weact_stm32g431_core +title: WeAct Studio STM32G431 Core Board +slug: /firmware/hardware/catalog/boards/unverified/arm_weact_stm32g431_core +description: IoT board WeAct Studio STM32G431 Core Board, compatible with Golioth at unverified level. +image: /img/boards/arm/null +sidebar_class_name: hide-item +--- + +[//]: # (This is an auto-generated file, do not edit! Changes to it will be lost upon re-generation) + + + +| | Board properties | +| ------------- | -------------------- | +| Board ID | `weact_stm32g431_core` | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | +| Architecture | ARM | +| RAM* | 32 kB | +| Flash* | 128 kB | + +\* values are as reported by Zephyr `.yaml` board files, which don't represent the overall available resources + + + +## Supported features + +* counter +* gpio +* nvs +* pinctrl +* tcpc +* uart +* usb_device +* watchdog + +## Supported toolchains + +* zephyr +* gnuarmemb +* xtools + +## Official Zephyr docs + +[WeAct Studio STM32G431 Core Board (weact_stm32g431_core)](https://docs.zephyrproject.org/latest/boards/arm/weact_stm32g431_core/doc/index.html) diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_wio_terminal.md b/docs/firmware/hardware/6-catalog/unverified/arm_wio_terminal.md index 069aff45..eb84ac17 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_wio_terminal.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_wio_terminal.md @@ -1,7 +1,7 @@ --- id: arm_wio_terminal title: Wio Terminal -slug: /hardware/catalog/boards/unverified/arm_wio_terminal +slug: /firmware/hardware/catalog/boards/unverified/arm_wio_terminal description: IoT board Wio Terminal, compatible with Golioth at unverified level. image: /img/boards/arm/wio_terminal.png sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `wio_terminal` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 192 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_xiao_ble.md b/docs/firmware/hardware/6-catalog/unverified/arm_xiao_ble.md index 7d201ff1..6f62a23c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_xiao_ble.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_xiao_ble.md @@ -1,7 +1,7 @@ --- id: arm_xiao_ble title: XIAO BLE -slug: /hardware/catalog/boards/unverified/arm_xiao_ble +slug: /firmware/hardware/catalog/boards/unverified/arm_xiao_ble description: IoT board XIAO BLE, compatible with Golioth at unverified level. image: /img/boards/arm/xiao_ble.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `xiao_ble` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 256 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_xmc45_relax_kit.md b/docs/firmware/hardware/6-catalog/unverified/arm_xmc45_relax_kit.md index f79930db..2299a3da 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_xmc45_relax_kit.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_xmc45_relax_kit.md @@ -1,7 +1,7 @@ --- id: arm_xmc45_relax_kit title: XMC45-RELAX-KIT -slug: /hardware/catalog/boards/unverified/arm_xmc45_relax_kit +slug: /firmware/hardware/catalog/boards/unverified/arm_xmc45_relax_kit description: IoT board XMC45-RELAX-KIT, compatible with Golioth at unverified level. image: /img/boards/arm/xmc45_relax_kit.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `xmc45_relax_kit` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 160 kB | | Flash* | 1024 kB | @@ -30,6 +30,7 @@ sidebar_class_name: hide-item * gpio * spi * uart +* watchdog ## Supported toolchains diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_xmc47_relax_kit.md b/docs/firmware/hardware/6-catalog/unverified/arm_xmc47_relax_kit.md index 1389bb8b..311ada4d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_xmc47_relax_kit.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_xmc47_relax_kit.md @@ -1,7 +1,7 @@ --- id: arm_xmc47_relax_kit title: XMC47-RELAX-KIT -slug: /hardware/catalog/boards/unverified/arm_xmc47_relax_kit +slug: /firmware/hardware/catalog/boards/unverified/arm_xmc47_relax_kit description: IoT board XMC47-RELAX-KIT, compatible with Golioth at unverified level. image: /img/boards/arm/xmc47_relax_kit.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `xmc47_relax_kit` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 352 kB | | Flash* | 2048 kB | @@ -33,6 +33,7 @@ sidebar_class_name: hide-item * uart * arduino_spi * arduino_serial +* watchdog ## Supported toolchains diff --git a/docs/firmware/hardware/6-catalog/unverified/arm_zybo.md b/docs/firmware/hardware/6-catalog/unverified/arm_zybo.md index a0226019..89404673 100644 --- a/docs/firmware/hardware/6-catalog/unverified/arm_zybo.md +++ b/docs/firmware/hardware/6-catalog/unverified/arm_zybo.md @@ -1,7 +1,7 @@ --- id: arm_zybo title: Digilent Zybo -slug: /hardware/catalog/boards/unverified/arm_zybo +slug: /firmware/hardware/catalog/boards/unverified/arm_zybo description: IoT board Digilent Zybo, compatible with Golioth at unverified level. image: /img/boards/arm/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `zybo` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | ARM | | RAM* | 524288 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/mips_qemu_malta.md b/docs/firmware/hardware/6-catalog/unverified/mips_qemu_malta.md index ccd2723d..4717cc48 100644 --- a/docs/firmware/hardware/6-catalog/unverified/mips_qemu_malta.md +++ b/docs/firmware/hardware/6-catalog/unverified/mips_qemu_malta.md @@ -1,7 +1,7 @@ --- id: mips_qemu_malta title: QEMU emulation for MIPS -slug: /hardware/catalog/boards/unverified/mips_qemu_malta +slug: /firmware/hardware/catalog/boards/unverified/mips_qemu_malta description: IoT board QEMU emulation for MIPS, compatible with Golioth at unverified level. image: /img/boards/mips/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `qemu_malta` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | MIPS | | RAM* | 1024 kB | | Flash* | 512 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/nios2_altera_max10.md b/docs/firmware/hardware/6-catalog/unverified/nios2_altera_max10.md index c0f3416d..670bfe53 100644 --- a/docs/firmware/hardware/6-catalog/unverified/nios2_altera_max10.md +++ b/docs/firmware/hardware/6-catalog/unverified/nios2_altera_max10.md @@ -1,7 +1,7 @@ --- id: nios2_altera_max10 title: Altera MAX10 -slug: /hardware/catalog/boards/unverified/nios2_altera_max10 +slug: /firmware/hardware/catalog/boards/unverified/nios2_altera_max10 description: IoT board Altera MAX10, compatible with Golioth at unverified level. image: /img/boards/nios2/altera_max10.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `altera_max10` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | NIOS2 | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/nios2_qemu_nios2.md b/docs/firmware/hardware/6-catalog/unverified/nios2_qemu_nios2.md index 20de5eef..e2bb6623 100644 --- a/docs/firmware/hardware/6-catalog/unverified/nios2_qemu_nios2.md +++ b/docs/firmware/hardware/6-catalog/unverified/nios2_qemu_nios2.md @@ -1,7 +1,7 @@ --- id: nios2_qemu_nios2 title: QEMU Emulation for NIOS II -slug: /hardware/catalog/boards/unverified/nios2_qemu_nios2 +slug: /firmware/hardware/catalog/boards/unverified/nios2_qemu_nios2 description: IoT board QEMU Emulation for NIOS II, compatible with Golioth at unverified level. image: /img/boards/nios2/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `qemu_nios2` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | NIOS2 | | RAM* | 128 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/posix_common.md b/docs/firmware/hardware/6-catalog/unverified/posix_common.md index 2dceccdd..baf3cc68 100644 --- a/docs/firmware/hardware/6-catalog/unverified/posix_common.md +++ b/docs/firmware/hardware/6-catalog/unverified/posix_common.md @@ -1,7 +1,7 @@ --- id: posix_common title: common -slug: /hardware/catalog/boards/unverified/posix_common +slug: /firmware/hardware/catalog/boards/unverified/posix_common description: IoT board common, compatible with Golioth at unverified level. image: /img/boards/posix/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `common` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | POSIX | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/posix_doc.md b/docs/firmware/hardware/6-catalog/unverified/posix_doc.md index def8609f..ee8728f8 100644 --- a/docs/firmware/hardware/6-catalog/unverified/posix_doc.md +++ b/docs/firmware/hardware/6-catalog/unverified/posix_doc.md @@ -1,7 +1,7 @@ --- id: posix_doc title: doc -slug: /hardware/catalog/boards/unverified/posix_doc +slug: /firmware/hardware/catalog/boards/unverified/posix_doc description: IoT board doc, compatible with Golioth at unverified level. image: /img/boards/posix/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `doc` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | POSIX | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/posix_native_posix.md b/docs/firmware/hardware/6-catalog/unverified/posix_native_posix.md index 74df8578..e103b610 100644 --- a/docs/firmware/hardware/6-catalog/unverified/posix_native_posix.md +++ b/docs/firmware/hardware/6-catalog/unverified/posix_native_posix.md @@ -1,7 +1,7 @@ --- id: posix_native_posix title: Native 32-bit POSIX port -slug: /hardware/catalog/boards/unverified/posix_native_posix +slug: /firmware/hardware/catalog/boards/unverified/posix_native_posix description: IoT board Native 32-bit POSIX port, compatible with Golioth at unverified level. image: /img/boards/posix/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `native_posix` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | POSIX | | RAM* | 65536 kB | | Flash* | 65536 kB | @@ -26,6 +26,7 @@ sidebar_class_name: hide-item ## Supported features * can +* counter * eeprom * netif:eth * usb_device diff --git a/docs/firmware/hardware/6-catalog/unverified/posix_native_sim.md b/docs/firmware/hardware/6-catalog/unverified/posix_native_sim.md index 3caec835..2bf97b17 100644 --- a/docs/firmware/hardware/6-catalog/unverified/posix_native_sim.md +++ b/docs/firmware/hardware/6-catalog/unverified/posix_native_sim.md @@ -1,7 +1,7 @@ --- id: posix_native_sim title: Native Simulation port - 32-bit -slug: /hardware/catalog/boards/unverified/posix_native_sim +slug: /firmware/hardware/catalog/boards/unverified/posix_native_sim description: IoT board Native Simulation port - 32-bit, compatible with Golioth at unverified level. image: /img/boards/posix/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `native_sim` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | POSIX | | RAM* | 65536 kB | | Flash* | 65536 kB | @@ -26,6 +26,7 @@ sidebar_class_name: hide-item ## Supported features * can +* counter * eeprom * netif:eth * usb_device diff --git a/docs/firmware/hardware/6-catalog/unverified/posix_nrf_bsim.md b/docs/firmware/hardware/6-catalog/unverified/posix_nrf_bsim.md index be039f79..372b73b5 100644 --- a/docs/firmware/hardware/6-catalog/unverified/posix_nrf_bsim.md +++ b/docs/firmware/hardware/6-catalog/unverified/posix_nrf_bsim.md @@ -1,7 +1,7 @@ --- id: posix_nrf_bsim title: nrf_bsim -slug: /hardware/catalog/boards/unverified/posix_nrf_bsim +slug: /firmware/hardware/catalog/boards/unverified/posix_nrf_bsim description: IoT board nrf_bsim, compatible with Golioth at unverified level. image: /img/boards/posix/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nrf_bsim` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | POSIX | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_adp_xc7k_ae350.md b/docs/firmware/hardware/6-catalog/unverified/riscv_adp_xc7k_ae350.md index 651d439e..70666b79 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_adp_xc7k_ae350.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_adp_xc7k_ae350.md @@ -1,7 +1,7 @@ --- id: riscv_adp_xc7k_ae350 title: Andes ADP-XC7K AE350 -slug: /hardware/catalog/boards/unverified/riscv_adp_xc7k_ae350 +slug: /firmware/hardware/catalog/boards/unverified/riscv_adp_xc7k_ae350 description: IoT board Andes ADP-XC7K AE350, compatible with Golioth at unverified level. image: /img/boards/riscv/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `adp_xc7k_ae350` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 512 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_esp32c3_devkitm.md b/docs/firmware/hardware/6-catalog/unverified/riscv_esp32c3_devkitm.md index 66a9f31c..15cb56f6 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_esp32c3_devkitm.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_esp32c3_devkitm.md @@ -1,7 +1,7 @@ --- id: riscv_esp32c3_devkitm title: ESP32-C3 -slug: /hardware/catalog/boards/unverified/riscv_esp32c3_devkitm +slug: /firmware/hardware/catalog/boards/unverified/riscv_esp32c3_devkitm description: IoT board ESP32-C3, compatible with Golioth at unverified level. image: /img/boards/riscv/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `esp32c3_devkitm` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_esp32c3_luatos_core.md b/docs/firmware/hardware/6-catalog/unverified/riscv_esp32c3_luatos_core.md index 646bd99e..b00eb1cc 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_esp32c3_luatos_core.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_esp32c3_luatos_core.md @@ -1,7 +1,7 @@ --- id: riscv_esp32c3_luatos_core title: ESP32C3 LuatOS Core -slug: /hardware/catalog/boards/unverified/riscv_esp32c3_luatos_core +slug: /firmware/hardware/catalog/boards/unverified/riscv_esp32c3_luatos_core description: IoT board ESP32C3 LuatOS Core, compatible with Golioth at unverified level. image: /img/boards/riscv/esp32c3_luatos_core.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `esp32c3_luatos_core` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_gd32vf103c_starter.md b/docs/firmware/hardware/6-catalog/unverified/riscv_gd32vf103c_starter.md index 9829b8fd..118aad07 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_gd32vf103c_starter.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_gd32vf103c_starter.md @@ -1,7 +1,7 @@ --- id: riscv_gd32vf103c_starter title: GigaDevice GD32VF103C-STARTER -slug: /hardware/catalog/boards/unverified/riscv_gd32vf103c_starter +slug: /firmware/hardware/catalog/boards/unverified/riscv_gd32vf103c_starter description: IoT board GigaDevice GD32VF103C-STARTER, compatible with Golioth at unverified level. image: /img/boards/riscv/gd32vf103c_starter.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `gd32vf103c_starter` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 32 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_gd32vf103v_eval.md b/docs/firmware/hardware/6-catalog/unverified/riscv_gd32vf103v_eval.md index 52ee23d5..728de3e9 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_gd32vf103v_eval.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_gd32vf103v_eval.md @@ -1,7 +1,7 @@ --- id: riscv_gd32vf103v_eval title: GigaDevice GD32VF103V-EVAL -slug: /hardware/catalog/boards/unverified/riscv_gd32vf103v_eval +slug: /firmware/hardware/catalog/boards/unverified/riscv_gd32vf103v_eval description: IoT board GigaDevice GD32VF103V-EVAL, compatible with Golioth at unverified level. image: /img/boards/riscv/gd32vf103v_eval.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `gd32vf103v_eval` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 32 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_hifive1.md b/docs/firmware/hardware/6-catalog/unverified/riscv_hifive1.md index ff3bf043..df5c99f0 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_hifive1.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_hifive1.md @@ -1,7 +1,7 @@ --- id: riscv_hifive1 title: SiFive HiFive1 -slug: /hardware/catalog/boards/unverified/riscv_hifive1 +slug: /firmware/hardware/catalog/boards/unverified/riscv_hifive1 description: IoT board SiFive HiFive1, compatible with Golioth at unverified level. image: /img/boards/riscv/hifive1.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `hifive1` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 16 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_hifive1_revb.md b/docs/firmware/hardware/6-catalog/unverified/riscv_hifive1_revb.md index 700a9d95..3c5d1816 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_hifive1_revb.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_hifive1_revb.md @@ -1,7 +1,7 @@ --- id: riscv_hifive1_revb title: SiFive HiFive1 Rev B -slug: /hardware/catalog/boards/unverified/riscv_hifive1_revb +slug: /firmware/hardware/catalog/boards/unverified/riscv_hifive1_revb description: IoT board SiFive HiFive1 Rev B, compatible with Golioth at unverified level. image: /img/boards/riscv/hifive1_revb.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `hifive1_revb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 16 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_hifive_unleashed.md b/docs/firmware/hardware/6-catalog/unverified/riscv_hifive_unleashed.md index 7a7dea09..8690e445 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_hifive_unleashed.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_hifive_unleashed.md @@ -1,7 +1,7 @@ --- id: riscv_hifive_unleashed title: SiFive HiFive Unleashed -slug: /hardware/catalog/boards/unverified/riscv_hifive_unleashed +slug: /firmware/hardware/catalog/boards/unverified/riscv_hifive_unleashed description: IoT board SiFive HiFive Unleashed, compatible with Golioth at unverified level. image: /img/boards/riscv/hifive_unleashed.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `hifive_unleashed` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 3840 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_hifive_unmatched.md b/docs/firmware/hardware/6-catalog/unverified/riscv_hifive_unmatched.md index 9fe9f1dd..f26c0215 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_hifive_unmatched.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_hifive_unmatched.md @@ -1,7 +1,7 @@ --- id: riscv_hifive_unmatched title: SiFive HiFive Unmatched -slug: /hardware/catalog/boards/unverified/riscv_hifive_unmatched +slug: /firmware/hardware/catalog/boards/unverified/riscv_hifive_unmatched description: IoT board SiFive HiFive Unmatched, compatible with Golioth at unverified level. image: /img/boards/riscv/hifive_unmatched.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `hifive_unmatched` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 3840 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_icev_wireless.md b/docs/firmware/hardware/6-catalog/unverified/riscv_icev_wireless.md index 29da91d9..e4c34449 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_icev_wireless.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_icev_wireless.md @@ -1,7 +1,7 @@ --- id: riscv_icev_wireless title: ICE-V Wireless -slug: /hardware/catalog/boards/unverified/riscv_icev_wireless +slug: /firmware/hardware/catalog/boards/unverified/riscv_icev_wireless description: IoT board ICE-V Wireless, compatible with Golioth at unverified level. image: /img/boards/riscv/icev_wireless.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `icev_wireless` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_it82xx2_evb.md b/docs/firmware/hardware/6-catalog/unverified/riscv_it82xx2_evb.md index 8e5493df..14d927ce 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_it82xx2_evb.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_it82xx2_evb.md @@ -1,7 +1,7 @@ --- id: riscv_it82xx2_evb title: ITE IT82XX2 EVB -slug: /hardware/catalog/boards/unverified/riscv_it82xx2_evb +slug: /firmware/hardware/catalog/boards/unverified/riscv_it82xx2_evb description: IoT board ITE IT82XX2 EVB, compatible with Golioth at unverified level. image: /img/boards/riscv/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `it82xx2_evb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 256 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_it8xxx2_evb.md b/docs/firmware/hardware/6-catalog/unverified/riscv_it8xxx2_evb.md index e0b42ae8..2c3df91d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_it8xxx2_evb.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_it8xxx2_evb.md @@ -1,7 +1,7 @@ --- id: riscv_it8xxx2_evb title: it8xxx2_evb -slug: /hardware/catalog/boards/unverified/riscv_it8xxx2_evb +slug: /firmware/hardware/catalog/boards/unverified/riscv_it8xxx2_evb description: IoT board it8xxx2_evb, compatible with Golioth at unverified level. image: /img/boards/riscv/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `it8xxx2_evb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 60 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_litex_vexriscv.md b/docs/firmware/hardware/6-catalog/unverified/riscv_litex_vexriscv.md index 8648c183..ed961904 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_litex_vexriscv.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_litex_vexriscv.md @@ -1,7 +1,7 @@ --- id: riscv_litex_vexriscv title: LiteX SoC with VexRiscV softcore CPU -slug: /hardware/catalog/boards/unverified/riscv_litex_vexriscv +slug: /firmware/hardware/catalog/boards/unverified/riscv_litex_vexriscv description: IoT board LiteX SoC with VexRiscV softcore CPU, compatible with Golioth at unverified level. image: /img/boards/riscv/litex_vexriscv.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `litex_vexriscv` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 262144 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_longan_nano.md b/docs/firmware/hardware/6-catalog/unverified/riscv_longan_nano.md index 232b28a5..f5e19bab 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_longan_nano.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_longan_nano.md @@ -1,7 +1,7 @@ --- id: riscv_longan_nano title: Sipeed Longan Nano -slug: /hardware/catalog/boards/unverified/riscv_longan_nano +slug: /firmware/hardware/catalog/boards/unverified/riscv_longan_nano description: IoT board Sipeed Longan Nano, compatible with Golioth at unverified level. image: /img/boards/riscv/longan_nano.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `longan_nano` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 32 kB | | Flash* | 128 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_m2gl025_miv.md b/docs/firmware/hardware/6-catalog/unverified/riscv_m2gl025_miv.md index 578822aa..9ebc1371 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_m2gl025_miv.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_m2gl025_miv.md @@ -1,7 +1,7 @@ --- id: riscv_m2gl025_miv title: Microchip M2GL025 with MiV target -slug: /hardware/catalog/boards/unverified/riscv_m2gl025_miv +slug: /firmware/hardware/catalog/boards/unverified/riscv_m2gl025_miv description: IoT board Microchip M2GL025 with MiV target, compatible with Golioth at unverified level. image: /img/boards/riscv/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `m2gl025_miv` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 64 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_mpfs_icicle.md b/docs/firmware/hardware/6-catalog/unverified/riscv_mpfs_icicle.md index e6a751e1..0ef15167 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_mpfs_icicle.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_mpfs_icicle.md @@ -1,7 +1,7 @@ --- id: riscv_mpfs_icicle title: Microchip PolarFire ICICLE kit -slug: /hardware/catalog/boards/unverified/riscv_mpfs_icicle +slug: /firmware/hardware/catalog/boards/unverified/riscv_mpfs_icicle description: IoT board Microchip PolarFire ICICLE kit, compatible with Golioth at unverified level. image: /img/boards/riscv/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `mpfs_icicle` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 3840 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_neorv32.md b/docs/firmware/hardware/6-catalog/unverified/riscv_neorv32.md index 3ce28ed1..c679b254 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_neorv32.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_neorv32.md @@ -1,7 +1,7 @@ --- id: riscv_neorv32 title: NEORV32 Processor (SoC) -slug: /hardware/catalog/boards/unverified/riscv_neorv32 +slug: /firmware/hardware/catalog/boards/unverified/riscv_neorv32 description: IoT board NEORV32 Processor (SoC), compatible with Golioth at unverified level. image: /img/boards/riscv/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `neorv32` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 32 kB | | Flash* | 64 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_niosv_g.md b/docs/firmware/hardware/6-catalog/unverified/riscv_niosv_g.md index d8f9355b..2053b6d3 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_niosv_g.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_niosv_g.md @@ -1,7 +1,7 @@ --- id: riscv_niosv_g title: INTEL FPGA Nios V/g general purpose processor -slug: /hardware/catalog/boards/unverified/riscv_niosv_g +slug: /firmware/hardware/catalog/boards/unverified/riscv_niosv_g description: IoT board INTEL FPGA Nios V/g general purpose processor, compatible with Golioth at unverified level. image: /img/boards/riscv/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `niosv_g` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 256 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_niosv_m.md b/docs/firmware/hardware/6-catalog/unverified/riscv_niosv_m.md index 5444086f..93fada61 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_niosv_m.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_niosv_m.md @@ -1,7 +1,7 @@ --- id: riscv_niosv_m title: INTEL FPGA niosv_m -slug: /hardware/catalog/boards/unverified/riscv_niosv_m +slug: /firmware/hardware/catalog/boards/unverified/riscv_niosv_m description: IoT board INTEL FPGA niosv_m, compatible with Golioth at unverified level. image: /img/boards/riscv/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `niosv_m` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 256 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_opentitan_earlgrey.md b/docs/firmware/hardware/6-catalog/unverified/riscv_opentitan_earlgrey.md index 3d1fc6d3..23fd8f3f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_opentitan_earlgrey.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_opentitan_earlgrey.md @@ -1,7 +1,7 @@ --- id: riscv_opentitan_earlgrey title: OpenTitan Earl Grey -slug: /hardware/catalog/boards/unverified/riscv_opentitan_earlgrey +slug: /firmware/hardware/catalog/boards/unverified/riscv_opentitan_earlgrey description: IoT board OpenTitan Earl Grey, compatible with Golioth at unverified level. image: /img/boards/riscv/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `opentitan_earlgrey` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 128 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv32.md b/docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv32.md index dab64542..d46ab869 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv32.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv32.md @@ -1,7 +1,7 @@ --- id: riscv_qemu_riscv32 title: QEMU Emulation for RISC-V 32-bit -slug: /hardware/catalog/boards/unverified/riscv_qemu_riscv32 +slug: /firmware/hardware/catalog/boards/unverified/riscv_qemu_riscv32 description: IoT board QEMU Emulation for RISC-V 32-bit, compatible with Golioth at unverified level. image: /img/boards/riscv/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `qemu_riscv32` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv32e.md b/docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv32e.md index f186bef1..0f365c1a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv32e.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv32e.md @@ -1,7 +1,7 @@ --- id: riscv_qemu_riscv32e title: QEMU Emulation for RISC-V (RV32E) 32-bit -slug: /hardware/catalog/boards/unverified/riscv_qemu_riscv32e +slug: /firmware/hardware/catalog/boards/unverified/riscv_qemu_riscv32e description: IoT board QEMU Emulation for RISC-V (RV32E) 32-bit, compatible with Golioth at unverified level. image: /img/boards/riscv/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `qemu_riscv32e` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv64.md b/docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv64.md index 726b39b3..00560c8d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv64.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_qemu_riscv64.md @@ -1,7 +1,7 @@ --- id: riscv_qemu_riscv64 title: QEMU Emulation for RISC-V 64-bit -slug: /hardware/catalog/boards/unverified/riscv_qemu_riscv64 +slug: /firmware/hardware/catalog/boards/unverified/riscv_qemu_riscv64 description: IoT board QEMU Emulation for RISC-V 64-bit, compatible with Golioth at unverified level. image: /img/boards/riscv/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `qemu_riscv64` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_rv32m1_vega.md b/docs/firmware/hardware/6-catalog/unverified/riscv_rv32m1_vega.md index 05dba25c..68f99722 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_rv32m1_vega.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_rv32m1_vega.md @@ -1,7 +1,7 @@ --- id: riscv_rv32m1_vega title: rv32m1_vega -slug: /hardware/catalog/boards/unverified/riscv_rv32m1_vega +slug: /firmware/hardware/catalog/boards/unverified/riscv_rv32m1_vega description: IoT board rv32m1_vega, compatible with Golioth at unverified level. image: /img/boards/riscv/rv32m1_vega.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `rv32m1_vega` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_sparkfun_red_v_things_plus.md b/docs/firmware/hardware/6-catalog/unverified/riscv_sparkfun_red_v_things_plus.md index 349e7290..f42f4988 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_sparkfun_red_v_things_plus.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_sparkfun_red_v_things_plus.md @@ -1,7 +1,7 @@ --- id: riscv_sparkfun_red_v_things_plus title: SparkFun RED-V Things Plus -slug: /hardware/catalog/boards/unverified/riscv_sparkfun_red_v_things_plus +slug: /firmware/hardware/catalog/boards/unverified/riscv_sparkfun_red_v_things_plus description: IoT board SparkFun RED-V Things Plus, compatible with Golioth at unverified level. image: /img/boards/riscv/sparkfun_red_v_things_plus.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `sparkfun_red_v_things_plus` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 16 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_stamp_c3.md b/docs/firmware/hardware/6-catalog/unverified/riscv_stamp_c3.md index c19058c9..a32cba31 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_stamp_c3.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_stamp_c3.md @@ -1,7 +1,7 @@ --- id: riscv_stamp_c3 title: M5Stack STAMP-C3 -slug: /hardware/catalog/boards/unverified/riscv_stamp_c3 +slug: /firmware/hardware/catalog/boards/unverified/riscv_stamp_c3 description: IoT board M5Stack STAMP-C3, compatible with Golioth at unverified level. image: /img/boards/riscv/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `stamp_c3` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_titanium_ti60_f225.md b/docs/firmware/hardware/6-catalog/unverified/riscv_titanium_ti60_f225.md index 6c60cc70..cbf56cba 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_titanium_ti60_f225.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_titanium_ti60_f225.md @@ -1,7 +1,7 @@ --- id: riscv_titanium_ti60_f225 title: titanium_ti60_f225 FPGA development kit with Efinix Sapphire riscv SoC -slug: /hardware/catalog/boards/unverified/riscv_titanium_ti60_f225 +slug: /firmware/hardware/catalog/boards/unverified/riscv_titanium_ti60_f225 description: IoT board titanium_ti60_f225 FPGA development kit with Efinix Sapphire riscv SoC, compatible with Golioth at unverified level. image: /img/boards/riscv/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `titanium_ti60_f225` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 196608 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_tlsr9518adk80d.md b/docs/firmware/hardware/6-catalog/unverified/riscv_tlsr9518adk80d.md index 5f1678f9..fb776671 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_tlsr9518adk80d.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_tlsr9518adk80d.md @@ -1,7 +1,7 @@ --- id: riscv_tlsr9518adk80d title: Telink TLSR9518ADK80D -slug: /hardware/catalog/boards/unverified/riscv_tlsr9518adk80d +slug: /firmware/hardware/catalog/boards/unverified/riscv_tlsr9518adk80d description: IoT board Telink TLSR9518ADK80D, compatible with Golioth at unverified level. image: /img/boards/riscv/tlsr9518adk80d.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `tlsr9518adk80d` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | 128 kB | | Flash* | 1024 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/riscv_xiao_esp32c3.md b/docs/firmware/hardware/6-catalog/unverified/riscv_xiao_esp32c3.md index 65981ce3..ae8d68c5 100644 --- a/docs/firmware/hardware/6-catalog/unverified/riscv_xiao_esp32c3.md +++ b/docs/firmware/hardware/6-catalog/unverified/riscv_xiao_esp32c3.md @@ -1,7 +1,7 @@ --- id: riscv_xiao_esp32c3 title: XIAO ESP32C3 -slug: /hardware/catalog/boards/unverified/riscv_xiao_esp32c3 +slug: /firmware/hardware/catalog/boards/unverified/riscv_xiao_esp32c3 description: IoT board XIAO ESP32C3, compatible with Golioth at unverified level. image: /img/boards/riscv/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `xiao_esp32c3` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | RISCV | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/sparc_generic_leon3.md b/docs/firmware/hardware/6-catalog/unverified/sparc_generic_leon3.md index 352b1773..05c2cf34 100644 --- a/docs/firmware/hardware/6-catalog/unverified/sparc_generic_leon3.md +++ b/docs/firmware/hardware/6-catalog/unverified/sparc_generic_leon3.md @@ -1,7 +1,7 @@ --- id: sparc_generic_leon3 title: Generic LEON3 system -slug: /hardware/catalog/boards/unverified/sparc_generic_leon3 +slug: /firmware/hardware/catalog/boards/unverified/sparc_generic_leon3 description: IoT board Generic LEON3 system, compatible with Golioth at unverified level. image: /img/boards/sparc/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `generic_leon3` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | SPARC | | RAM* | 4096 kB | | Flash* | 2048 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/sparc_gr716a_mini.md b/docs/firmware/hardware/6-catalog/unverified/sparc_gr716a_mini.md index 3cb0d5c5..a2453c08 100644 --- a/docs/firmware/hardware/6-catalog/unverified/sparc_gr716a_mini.md +++ b/docs/firmware/hardware/6-catalog/unverified/sparc_gr716a_mini.md @@ -1,7 +1,7 @@ --- id: sparc_gr716a_mini title: GR716-MINI Development Board -slug: /hardware/catalog/boards/unverified/sparc_gr716a_mini +slug: /firmware/hardware/catalog/boards/unverified/sparc_gr716a_mini description: IoT board GR716-MINI Development Board, compatible with Golioth at unverified level. image: /img/boards/sparc/gr716a_mini.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `gr716a_mini` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | SPARC | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/sparc_qemu_leon3.md b/docs/firmware/hardware/6-catalog/unverified/sparc_qemu_leon3.md index 040fee17..4c56a9fd 100644 --- a/docs/firmware/hardware/6-catalog/unverified/sparc_qemu_leon3.md +++ b/docs/firmware/hardware/6-catalog/unverified/sparc_qemu_leon3.md @@ -1,7 +1,7 @@ --- id: sparc_qemu_leon3 title: QEMU Emulation for LEON3 -slug: /hardware/catalog/boards/unverified/sparc_qemu_leon3 +slug: /firmware/hardware/catalog/boards/unverified/sparc_qemu_leon3 description: IoT board QEMU Emulation for LEON3, compatible with Golioth at unverified level. image: /img/boards/sparc/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `qemu_leon3` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | SPARC | | RAM* | 1048576 kB | | Flash* | 524288 kB | diff --git a/docs/firmware/hardware/6-catalog/unverified/x86_acrn.md b/docs/firmware/hardware/6-catalog/unverified/x86_acrn.md index 112bcdb2..4c597e30 100644 --- a/docs/firmware/hardware/6-catalog/unverified/x86_acrn.md +++ b/docs/firmware/hardware/6-catalog/unverified/x86_acrn.md @@ -1,7 +1,7 @@ --- id: x86_acrn title: ACRN -slug: /hardware/catalog/boards/unverified/x86_acrn +slug: /firmware/hardware/catalog/boards/unverified/x86_acrn description: IoT board ACRN, compatible with Golioth at unverified level. image: /img/boards/x86/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `acrn` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | X86 | | RAM* | 8192 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/x86_common.md b/docs/firmware/hardware/6-catalog/unverified/x86_common.md index 7bf34be2..6ee81c3c 100644 --- a/docs/firmware/hardware/6-catalog/unverified/x86_common.md +++ b/docs/firmware/hardware/6-catalog/unverified/x86_common.md @@ -1,7 +1,7 @@ --- id: x86_common title: common -slug: /hardware/catalog/boards/unverified/x86_common +slug: /firmware/hardware/catalog/boards/unverified/x86_common description: IoT board common, compatible with Golioth at unverified level. image: /img/boards/x86/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `common` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | X86 | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/x86_intel_adl.md b/docs/firmware/hardware/6-catalog/unverified/x86_intel_adl.md index 9e0817d8..962c949d 100644 --- a/docs/firmware/hardware/6-catalog/unverified/x86_intel_adl.md +++ b/docs/firmware/hardware/6-catalog/unverified/x86_intel_adl.md @@ -1,7 +1,7 @@ --- id: x86_intel_adl title: intel_adl -slug: /hardware/catalog/boards/unverified/x86_intel_adl +slug: /firmware/hardware/catalog/boards/unverified/x86_intel_adl description: IoT board intel_adl, compatible with Golioth at unverified level. image: /img/boards/x86/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `intel_adl` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | X86 | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/x86_intel_ehl.md b/docs/firmware/hardware/6-catalog/unverified/x86_intel_ehl.md index 8d0d4bb7..ae376c07 100644 --- a/docs/firmware/hardware/6-catalog/unverified/x86_intel_ehl.md +++ b/docs/firmware/hardware/6-catalog/unverified/x86_intel_ehl.md @@ -1,7 +1,7 @@ --- id: x86_intel_ehl title: intel_ehl -slug: /hardware/catalog/boards/unverified/x86_intel_ehl +slug: /firmware/hardware/catalog/boards/unverified/x86_intel_ehl description: IoT board intel_ehl, compatible with Golioth at unverified level. image: /img/boards/x86/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `intel_ehl` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | X86 | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/x86_intel_ish.md b/docs/firmware/hardware/6-catalog/unverified/x86_intel_ish.md index 5cc1a875..6acf59db 100644 --- a/docs/firmware/hardware/6-catalog/unverified/x86_intel_ish.md +++ b/docs/firmware/hardware/6-catalog/unverified/x86_intel_ish.md @@ -1,7 +1,7 @@ --- id: x86_intel_ish title: intel_ish -slug: /hardware/catalog/boards/unverified/x86_intel_ish +slug: /firmware/hardware/catalog/boards/unverified/x86_intel_ish description: IoT board intel_ish, compatible with Golioth at unverified level. image: /img/boards/x86/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `intel_ish` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | X86 | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/x86_intel_rpl.md b/docs/firmware/hardware/6-catalog/unverified/x86_intel_rpl.md index 99b540a0..222aac1a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/x86_intel_rpl.md +++ b/docs/firmware/hardware/6-catalog/unverified/x86_intel_rpl.md @@ -1,7 +1,7 @@ --- id: x86_intel_rpl title: intel_rpl -slug: /hardware/catalog/boards/unverified/x86_intel_rpl +slug: /firmware/hardware/catalog/boards/unverified/x86_intel_rpl description: IoT board intel_rpl, compatible with Golioth at unverified level. image: /img/boards/x86/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `intel_rpl` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | X86 | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/x86_qemu_x86.md b/docs/firmware/hardware/6-catalog/unverified/x86_qemu_x86.md index 51c33e11..ea021d91 100644 --- a/docs/firmware/hardware/6-catalog/unverified/x86_qemu_x86.md +++ b/docs/firmware/hardware/6-catalog/unverified/x86_qemu_x86.md @@ -1,7 +1,7 @@ --- id: x86_qemu_x86 title: QEMU Emulation for X86 -slug: /hardware/catalog/boards/unverified/x86_qemu_x86 +slug: /firmware/hardware/catalog/boards/unverified/x86_qemu_x86 description: IoT board QEMU Emulation for X86, compatible with Golioth at unverified level. image: /img/boards/x86/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `qemu_x86` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | X86 | | RAM* | 3000 kB | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/x86_up_squared.md b/docs/firmware/hardware/6-catalog/unverified/x86_up_squared.md index a1fc65f3..5feed386 100644 --- a/docs/firmware/hardware/6-catalog/unverified/x86_up_squared.md +++ b/docs/firmware/hardware/6-catalog/unverified/x86_up_squared.md @@ -1,7 +1,7 @@ --- id: x86_up_squared title: UP Squared (x86_64) -slug: /hardware/catalog/boards/unverified/x86_up_squared +slug: /firmware/hardware/catalog/boards/unverified/x86_up_squared description: IoT board UP Squared (x86_64), compatible with Golioth at unverified level. image: /img/boards/x86/up_squared.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `up_squared` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | X86 | | RAM* | 256 kB | | Flash* | N/A | @@ -25,6 +25,7 @@ sidebar_class_name: hide-item ## Supported features +* acpi * smp ## Supported toolchains diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wroom.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wroom.md index 6102d80b..bc801743 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wroom.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wroom.md @@ -1,7 +1,7 @@ --- id: xtensa_esp32_devkitc_wroom title: ESP32-DevkitC-WROOM-32D -slug: /hardware/catalog/boards/unverified/xtensa_esp32_devkitc_wroom +slug: /firmware/hardware/catalog/boards/unverified/xtensa_esp32_devkitc_wroom description: IoT board ESP32-DevkitC-WROOM-32D, compatible with Golioth at unverified level. image: /img/boards/xtensa/esp32_devkitc_wroom.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `esp32_devkitc_wroom` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wrover.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wrover.md index 314d2720..c75e511e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wrover.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_devkitc_wrover.md @@ -1,7 +1,7 @@ --- id: xtensa_esp32_devkitc_wrover title: ESP32-DevkitC-WROVER-E -slug: /hardware/catalog/boards/unverified/xtensa_esp32_devkitc_wrover +slug: /firmware/hardware/catalog/boards/unverified/xtensa_esp32_devkitc_wrover description: IoT board ESP32-DevkitC-WROVER-E, compatible with Golioth at unverified level. image: /img/boards/xtensa/esp32_devkitc_wrover.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `esp32_devkitc_wrover` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_ethernet_kit.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_ethernet_kit.md index 5fbde8a6..5db66875 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_ethernet_kit.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_ethernet_kit.md @@ -1,7 +1,7 @@ --- id: xtensa_esp32_ethernet_kit title: ESP32 ETHERNET KIT -slug: /hardware/catalog/boards/unverified/xtensa_esp32_ethernet_kit +slug: /firmware/hardware/catalog/boards/unverified/xtensa_esp32_ethernet_kit description: IoT board ESP32 ETHERNET KIT, compatible with Golioth at unverified level. image: /img/boards/xtensa/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `esp32_ethernet_kit` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_net.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_net.md index ac964b61..debc3b21 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_net.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32_net.md @@ -1,7 +1,7 @@ --- id: xtensa_esp32_net title: ESP32_NET -slug: /hardware/catalog/boards/unverified/xtensa_esp32_net +slug: /firmware/hardware/catalog/boards/unverified/xtensa_esp32_net description: IoT board ESP32_NET, compatible with Golioth at unverified level. image: /img/boards/xtensa/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `esp32_net` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s2_franzininho.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s2_franzininho.md index 6ff1daeb..feb40c64 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s2_franzininho.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s2_franzininho.md @@ -1,7 +1,7 @@ --- id: xtensa_esp32s2_franzininho title: ESP32-S2 Franzininho -slug: /hardware/catalog/boards/unverified/xtensa_esp32s2_franzininho +slug: /firmware/hardware/catalog/boards/unverified/xtensa_esp32s2_franzininho description: IoT board ESP32-S2 Franzininho, compatible with Golioth at unverified level. image: /img/boards/xtensa/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `esp32s2_franzininho` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s2_lolin_mini.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s2_lolin_mini.md new file mode 100644 index 00000000..79c335e0 --- /dev/null +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s2_lolin_mini.md @@ -0,0 +1,38 @@ +--- +id: xtensa_esp32s2_lolin_mini +title: Lolin ESP32-S2 Mini +slug: /firmware/hardware/catalog/boards/unverified/xtensa_esp32s2_lolin_mini +description: IoT board Lolin ESP32-S2 Mini, compatible with Golioth at unverified level. +image: /img/boards/xtensa/null +sidebar_class_name: hide-item +--- + +[//]: # (This is an auto-generated file, do not edit! Changes to it will be lost upon re-generation) + + + +| | Board properties | +| ------------- | -------------------- | +| Board ID | `esp32s2_lolin_mini` | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | +| Architecture | XTENSA | +| RAM* | N/A | +| Flash* | N/A | + +\* values are as reported by Zephyr `.yaml` board files, which don't represent the overall available resources + + + +## Supported features + +* gpio +* watchdog +* uart + +## Supported toolchains + +* zephyr + +## Official Zephyr docs + +[Lolin ESP32-S2 Mini (esp32s2_lolin_mini)](https://docs.zephyrproject.org/latest/boards/xtensa/esp32s2_lolin_mini/doc/index.html) diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s2_saola.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s2_saola.md index 34133cce..b834f1e1 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s2_saola.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s2_saola.md @@ -1,7 +1,7 @@ --- id: xtensa_esp32s2_saola title: ESP32-S2 Saola -slug: /hardware/catalog/boards/unverified/xtensa_esp32s2_saola +slug: /firmware/hardware/catalog/boards/unverified/xtensa_esp32s2_saola description: IoT board ESP32-S2 Saola, compatible with Golioth at unverified level. image: /img/boards/xtensa/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `esp32s2_saola` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s3_devkitm.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s3_devkitm.md index 7d6514f9..e93a5826 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s3_devkitm.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s3_devkitm.md @@ -1,7 +1,7 @@ --- id: xtensa_esp32s3_devkitm title: ESP32-S3 DevKitM -slug: /hardware/catalog/boards/unverified/xtensa_esp32s3_devkitm +slug: /firmware/hardware/catalog/boards/unverified/xtensa_esp32s3_devkitm description: IoT board ESP32-S3 DevKitM, compatible with Golioth at unverified level. image: /img/boards/xtensa/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `esp32s3_devkitm` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s3_luatos_core.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s3_luatos_core.md index cfa5fa32..ce066df2 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s3_luatos_core.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp32s3_luatos_core.md @@ -1,7 +1,7 @@ --- id: xtensa_esp32s3_luatos_core title: ESP32-S3 Core -slug: /hardware/catalog/boards/unverified/xtensa_esp32s3_luatos_core +slug: /firmware/hardware/catalog/boards/unverified/xtensa_esp32s3_luatos_core description: IoT board ESP32-S3 Core, compatible with Golioth at unverified level. image: /img/boards/xtensa/esp32s3_luatos_core.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `esp32s3_luatos_core` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp_wrover_kit.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp_wrover_kit.md index ba3470df..bd72cb2a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_esp_wrover_kit.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_esp_wrover_kit.md @@ -1,7 +1,7 @@ --- id: xtensa_esp_wrover_kit title: ESP WROVER KIT -slug: /hardware/catalog/boards/unverified/xtensa_esp_wrover_kit +slug: /firmware/hardware/catalog/boards/unverified/xtensa_esp_wrover_kit description: IoT board ESP WROVER KIT, compatible with Golioth at unverified level. image: /img/boards/xtensa/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `esp_wrover_kit` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_heltec_wifi_lora32_v2.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_heltec_wifi_lora32_v2.md index 689c4372..cd4e8904 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_heltec_wifi_lora32_v2.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_heltec_wifi_lora32_v2.md @@ -1,7 +1,7 @@ --- id: xtensa_heltec_wifi_lora32_v2 title: HELTEC WiFi LoRa 32 (V2) Board -slug: /hardware/catalog/boards/unverified/xtensa_heltec_wifi_lora32_v2 +slug: /firmware/hardware/catalog/boards/unverified/xtensa_heltec_wifi_lora32_v2 description: IoT board HELTEC WiFi LoRa 32 (V2) Board, compatible with Golioth at unverified level. image: /img/boards/xtensa/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `heltec_wifi_lora32_v2` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_heltec_wireless_stick_lite_v3.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_heltec_wireless_stick_lite_v3.md new file mode 100644 index 00000000..7f9a4471 --- /dev/null +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_heltec_wireless_stick_lite_v3.md @@ -0,0 +1,46 @@ +--- +id: xtensa_heltec_wireless_stick_lite_v3 +title: Heltec Wireless Stick Lite (V3) +slug: /firmware/hardware/catalog/boards/unverified/xtensa_heltec_wireless_stick_lite_v3 +description: IoT board Heltec Wireless Stick Lite (V3), compatible with Golioth at unverified level. +image: /img/boards/xtensa/null +sidebar_class_name: hide-item +--- + +[//]: # (This is an auto-generated file, do not edit! Changes to it will be lost upon re-generation) + + + +| | Board properties | +| ------------- | -------------------- | +| Board ID | `heltec_wireless_stick_lite_v3` | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | +| Architecture | XTENSA | +| RAM* | N/A | +| Flash* | N/A | + +\* values are as reported by Zephyr `.yaml` board files, which don't represent the overall available resources + + + +## Supported features + +* gpio +* uart +* i2c +* spi +* can +* counter +* watchdog +* entropy +* pwm +* dma +* lora + +## Supported toolchains + +* zephyr + +## Official Zephyr docs + +[Heltec Wireless Stick Lite (V3) (heltec_wireless_stick_lite_v3)](https://docs.zephyrproject.org/latest/boards/xtensa/heltec_wireless_stick_lite_v3/doc/index.html) diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_ace15_mtpm.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_ace15_mtpm.md index d4ac4873..9ea50360 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_ace15_mtpm.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_ace15_mtpm.md @@ -1,7 +1,7 @@ --- id: xtensa_intel_adsp_ace15_mtpm title: ACE 1.5 MTL M Audio DSP -slug: /hardware/catalog/boards/unverified/xtensa_intel_adsp_ace15_mtpm +slug: /firmware/hardware/catalog/boards/unverified/xtensa_intel_adsp_ace15_mtpm description: IoT board ACE 1.5 MTL M Audio DSP, compatible with Golioth at unverified level. image: /img/boards/xtensa/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `intel_adsp_ace15_mtpm` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_ace20_lnl.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_ace20_lnl.md index cbb8f748..92b5d325 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_ace20_lnl.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_ace20_lnl.md @@ -1,7 +1,7 @@ --- id: xtensa_intel_adsp_ace20_lnl title: ACE 2.0 LNL Audio DSP -slug: /hardware/catalog/boards/unverified/xtensa_intel_adsp_ace20_lnl +slug: /firmware/hardware/catalog/boards/unverified/xtensa_intel_adsp_ace20_lnl description: IoT board ACE 2.0 LNL Audio DSP, compatible with Golioth at unverified level. image: /img/boards/xtensa/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `intel_adsp_ace20_lnl` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_cavs25.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_cavs25.md index f66fe390..b9aab036 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_cavs25.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_intel_adsp_cavs25.md @@ -1,7 +1,7 @@ --- id: xtensa_intel_adsp_cavs25 title: cAVS 2.5 Audio DSP (converged Audio Voice and Speech) -slug: /hardware/catalog/boards/unverified/xtensa_intel_adsp_cavs25 +slug: /firmware/hardware/catalog/boards/unverified/xtensa_intel_adsp_cavs25 description: IoT board cAVS 2.5 Audio DSP (converged Audio Voice and Speech), compatible with Golioth at unverified level. image: /img/boards/xtensa/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `intel_adsp_cavs25` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_m5stack_atoms3.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_m5stack_atoms3.md new file mode 100644 index 00000000..14e71d31 --- /dev/null +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_m5stack_atoms3.md @@ -0,0 +1,44 @@ +--- +id: xtensa_m5stack_atoms3 +title: M5Stack AtomS3 +slug: /firmware/hardware/catalog/boards/unverified/xtensa_m5stack_atoms3 +description: IoT board M5Stack AtomS3, compatible with Golioth at unverified level. +image: /img/boards/xtensa/null +sidebar_class_name: hide-item +--- + +[//]: # (This is an auto-generated file, do not edit! Changes to it will be lost upon re-generation) + + + +| | Board properties | +| ------------- | -------------------- | +| Board ID | `m5stack_atoms3` | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | +| Architecture | XTENSA | +| RAM* | N/A | +| Flash* | N/A | + +\* values are as reported by Zephyr `.yaml` board files, which don't represent the overall available resources + + + +## Supported features + +* gpio +* i2c +* spi +* watchdog +* regulator +* uart +* pinmux +* nvs +* display + +## Supported toolchains + +* zephyr + +## Official Zephyr docs + +[M5Stack AtomS3 (m5stack_atoms3)](https://docs.zephyrproject.org/latest/boards/xtensa/m5stack_atoms3/doc/index.html) diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_m5stack_core2.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_m5stack_core2.md index f644c07b..2589fffc 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_m5stack_core2.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_m5stack_core2.md @@ -1,7 +1,7 @@ --- id: xtensa_m5stack_core2 title: M5Stack Core2 -slug: /hardware/catalog/boards/unverified/xtensa_m5stack_core2 +slug: /firmware/hardware/catalog/boards/unverified/xtensa_m5stack_core2 description: IoT board M5Stack Core2, compatible with Golioth at unverified level. image: /img/boards/xtensa/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `m5stack_core2` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_m5stickc_plus.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_m5stickc_plus.md index 623a004f..9efa34e0 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_m5stickc_plus.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_m5stickc_plus.md @@ -1,7 +1,7 @@ --- id: xtensa_m5stickc_plus title: M5StickC PLUS -slug: /hardware/catalog/boards/unverified/xtensa_m5stickc_plus +slug: /firmware/hardware/catalog/boards/unverified/xtensa_m5stickc_plus description: IoT board M5StickC PLUS, compatible with Golioth at unverified level. image: /img/boards/xtensa/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `m5stickc_plus` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8.md index 0d032c8d..e6a3284f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8.md @@ -1,7 +1,7 @@ --- id: xtensa_nxp_adsp_imx8 title: i.MX8 DSP -slug: /hardware/catalog/boards/unverified/xtensa_nxp_adsp_imx8 +slug: /firmware/hardware/catalog/boards/unverified/xtensa_nxp_adsp_imx8 description: IoT board i.MX8 DSP, compatible with Golioth at unverified level. image: /img/boards/xtensa/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nxp_adsp_imx8` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8m.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8m.md index 1fc73b8b..014db09f 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8m.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8m.md @@ -1,7 +1,7 @@ --- id: xtensa_nxp_adsp_imx8m title: NXP i.MX8M Plus EVK Audio DSP -slug: /hardware/catalog/boards/unverified/xtensa_nxp_adsp_imx8m +slug: /firmware/hardware/catalog/boards/unverified/xtensa_nxp_adsp_imx8m description: IoT board NXP i.MX8M Plus EVK Audio DSP, compatible with Golioth at unverified level. image: /img/boards/xtensa/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nxp_adsp_imx8m` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | @@ -29,6 +29,8 @@ sidebar_class_name: hide-item ## Supported toolchains +* xcc +* xt-clang * zephyr ## Official Zephyr docs diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8x.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8x.md index b4c9ae66..5c030ab1 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8x.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_imx8x.md @@ -1,7 +1,7 @@ --- id: xtensa_nxp_adsp_imx8x title: i.MX8X DSP -slug: /hardware/catalog/boards/unverified/xtensa_nxp_adsp_imx8x +slug: /firmware/hardware/catalog/boards/unverified/xtensa_nxp_adsp_imx8x description: IoT board i.MX8X DSP, compatible with Golioth at unverified level. image: /img/boards/xtensa/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `nxp_adsp_imx8x` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_rt595.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_rt595.md new file mode 100644 index 00000000..55b32685 --- /dev/null +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_nxp_adsp_rt595.md @@ -0,0 +1,36 @@ +--- +id: xtensa_nxp_adsp_rt595 +title: i.MXRT595 DSP +slug: /firmware/hardware/catalog/boards/unverified/xtensa_nxp_adsp_rt595 +description: IoT board i.MXRT595 DSP, compatible with Golioth at unverified level. +image: /img/boards/xtensa/null +sidebar_class_name: hide-item +--- + +[//]: # (This is an auto-generated file, do not edit! Changes to it will be lost upon re-generation) + + + +| | Board properties | +| ------------- | -------------------- | +| Board ID | `nxp_adsp_rt595` | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | +| Architecture | XTENSA | +| RAM* | N/A | +| Flash* | N/A | + +\* values are as reported by Zephyr `.yaml` board files, which don't represent the overall available resources + + + +## Supported features + +List of supported features is not available. + +## Supported toolchains + +* zephyr + +## Official Zephyr docs + +[i.MXRT595 DSP (nxp_adsp_rt595)](https://docs.zephyrproject.org/latest/boards/xtensa/nxp_adsp_rt595/doc/index.html) diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_odroid_go.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_odroid_go.md index 949fb010..c956b110 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_odroid_go.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_odroid_go.md @@ -1,7 +1,7 @@ --- id: xtensa_odroid_go title: ODROID-GO -slug: /hardware/catalog/boards/unverified/xtensa_odroid_go +slug: /firmware/hardware/catalog/boards/unverified/xtensa_odroid_go description: IoT board ODROID-GO, compatible with Golioth at unverified level. image: /img/boards/xtensa/odroid_go.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `odroid_go` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_olimex_esp32_evb.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_olimex_esp32_evb.md index 2a0b9be7..e4e31b35 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_olimex_esp32_evb.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_olimex_esp32_evb.md @@ -1,7 +1,7 @@ --- id: xtensa_olimex_esp32_evb title: Olimex ESP32-EVB -slug: /hardware/catalog/boards/unverified/xtensa_olimex_esp32_evb +slug: /firmware/hardware/catalog/boards/unverified/xtensa_olimex_esp32_evb description: IoT board Olimex ESP32-EVB, compatible with Golioth at unverified level. image: /img/boards/xtensa/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `olimex_esp32_evb` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_qemu_xtensa.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_qemu_xtensa.md index 8c801a3f..2408443e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_qemu_xtensa.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_qemu_xtensa.md @@ -1,7 +1,7 @@ --- id: xtensa_qemu_xtensa title: QEMU Emulation for Xtensa -slug: /hardware/catalog/boards/unverified/xtensa_qemu_xtensa +slug: /firmware/hardware/catalog/boards/unverified/xtensa_qemu_xtensa description: IoT board QEMU Emulation for Xtensa, compatible with Golioth at unverified level. image: /img/boards/xtensa/null sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `qemu_xtensa` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_xiao_esp32s3.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_xiao_esp32s3.md index b002fb89..b9ad8c11 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_xiao_esp32s3.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_xiao_esp32s3.md @@ -1,7 +1,7 @@ --- id: xtensa_xiao_esp32s3 title: XIAO ESP32S3 -slug: /hardware/catalog/boards/unverified/xtensa_xiao_esp32s3 +slug: /firmware/hardware/catalog/boards/unverified/xtensa_xiao_esp32s3 description: IoT board XIAO ESP32S3, compatible with Golioth at unverified level. image: /img/boards/xtensa/xiao_esp32s3.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `xiao_esp32s3` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_xt-sim.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_xt-sim.md index ee53ef91..748b281e 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_xt-sim.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_xt-sim.md @@ -1,7 +1,7 @@ --- id: xtensa_xt-sim title: XT Simulator -slug: /hardware/catalog/boards/unverified/xtensa_xt-sim +slug: /firmware/hardware/catalog/boards/unverified/xtensa_xt-sim description: IoT board XT Simulator, compatible with Golioth at unverified level. image: /img/boards/xtensa/xt-sim.jpg sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `xt-sim` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/unverified/xtensa_yd_esp32.md b/docs/firmware/hardware/6-catalog/unverified/xtensa_yd_esp32.md index 93c14d34..14571d9a 100644 --- a/docs/firmware/hardware/6-catalog/unverified/xtensa_yd_esp32.md +++ b/docs/firmware/hardware/6-catalog/unverified/xtensa_yd_esp32.md @@ -1,7 +1,7 @@ --- id: xtensa_yd_esp32 title: YD-ESP32 -slug: /hardware/catalog/boards/unverified/xtensa_yd_esp32 +slug: /firmware/hardware/catalog/boards/unverified/xtensa_yd_esp32 description: IoT board YD-ESP32, compatible with Golioth at unverified level. image: /img/boards/xtensa/yd_esp32.png sidebar_class_name: hide-item @@ -14,7 +14,7 @@ sidebar_class_name: hide-item | | Board properties | | ------------- | -------------------- | | Board ID | `yd_esp32` | -| Golioth Level | [Unverified](/hardware#unverified-boards) | +| Golioth Level | [Unverified](/firmware/hardware#unverified-boards) | | Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | diff --git a/docs/firmware/hardware/6-catalog/verified/arm_circuitdojo_feather_nrf9160.md b/docs/firmware/hardware/6-catalog/verified/arm_circuitdojo_feather_nrf9160.md index 5819c3e3..4e014a6d 100644 --- a/docs/firmware/hardware/6-catalog/verified/arm_circuitdojo_feather_nrf9160.md +++ b/docs/firmware/hardware/6-catalog/verified/arm_circuitdojo_feather_nrf9160.md @@ -1,7 +1,7 @@ --- id: arm_circuitdojo_feather_nrf9160 title: CircuitDojo-Feather-nRF9160 -slug: /hardware/catalog/boards/verified/arm_circuitdojo_feather_nrf9160 +slug: /firmware/hardware/catalog/boards/verified/arm_circuitdojo_feather_nrf9160 description: IoT board CircuitDojo-Feather-nRF9160, compatible with Golioth at verified level. image: /img/boards/arm/circuitdojo_feather_nrf9160.jpg @@ -14,7 +14,7 @@ image: /img/boards/arm/circuitdojo_feather_nrf9160.jpg | | Board properties | | ------------- | -------------------- | | Board ID | `circuitdojo_feather_nrf9160` | -| Golioth Level | [Verified](/hardware#verified-boards) | +| Golioth Level | [Verified](/firmware/hardware#verified-boards) | | Architecture | ARM | | RAM* | 64 kB | | Flash* | 256 kB | diff --git a/docs/firmware/hardware/README.md b/docs/firmware/hardware/README.md index c0281469..9e13ab10 100644 --- a/docs/firmware/hardware/README.md +++ b/docs/firmware/hardware/README.md @@ -2,7 +2,7 @@ id: overview title: Hardware hide_title: false -slug: /hardware +slug: /firmware/hardware --- The Hardware section includes a catalog of supported boards for the Golioth @@ -19,12 +19,12 @@ hardware. | Vendor | SDK | Quickstart | Note | | ---------- | -------------------- | ---------- | ---- | -| Espressif | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | [ESP32 ESP-IDF Quickstart](/hardware/esp32/espidf-quickstart/set-up-espidf) | Use for ESP32 MCUs | -| Espressif | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [ESP32 Zephyr Quickstart](/hardware/esp32/zephyr-quickstart/set-up-zephyr) | Use for ESP32 MCUs | +| Espressif | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | [ESP32 ESP-IDF Quickstart](/firmware/hardware/esp32/espidf-quickstart/set-up-espidf) | Use for ESP32 MCUs | +| Espressif | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [ESP32 Zephyr Quickstart](/firmware/hardware/esp32/zephyr-quickstart/set-up-zephyr) | Use for ESP32 MCUs | | Infineon | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | ModusToolbox™ [Readme](https://github.com/golioth/golioth-firmware-sdk/tree/main/examples/modus_toolbox) / [Webinar](https://blog.golioth.io/a-recap-of-how-to-collect-data-from-iot-sensors-using-golioth-and-the-infineon-modustoolbox/) | Use for Infineon MCUs like PSoC6 | -| Nordic | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [nRF9160 Zephyr Quickstart](/hardware/nrf91/zephyr-quickstart/set-up-zephyr) | Use for Nordic MCUs like nRF9160 and nRF7002 | -| NXP | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [mimxrt1060evkb Zephyr Quickstart](/hardware/mimxrt1060_evkb/zephyr-quickstart/set-up-zephyr) | Use for NXP MCUs like i.MX RT1062 and i.MX RT1024 | -| Other Vendors | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [mimxrt1060evkb Zephyr Quickstart](/hardware/mimxrt1060_evkb/zephyr-quickstart/set-up-zephyr) | Many other MCUs are supported by Zephyr will work with Golioth! Follow this quickstart and substitute your board name in the build examples. | +| Nordic | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [nRF9160 Zephyr Quickstart](/firmware/hardware/nrf91/zephyr-quickstart/set-up-zephyr) | Use for Nordic MCUs like nRF9160 and nRF7002 | +| NXP | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [mimxrt1060evkb Zephyr Quickstart](/firmware/hardware/mimxrt1060_evkb/zephyr-quickstart/set-up-zephyr) | Use for NXP MCUs like i.MX RT1062 and i.MX RT1024 | +| Other Vendors | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [mimxrt1060evkb Zephyr Quickstart](/firmware/hardware/mimxrt1060_evkb/zephyr-quickstart/set-up-zephyr) | Many other MCUs are supported by Zephyr will work with Golioth! Follow this quickstart and substitute your board name in the build examples. | :::info Don't see your hardware listed? diff --git a/docs/firmware/hardware/assets/boards.json b/docs/firmware/hardware/assets/boards.json index cfc91e33..930f4121 100644 --- a/docs/firmware/hardware/assets/boards.json +++ b/docs/firmware/hardware/assets/boards.json @@ -39,6 +39,7 @@ {"boardId":"arduino_nano_33_iot","name":"Arduino Nano 33 IOT","img":null,"arch":"arm","flash":256,"ram":32,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["adc","counter","dma","gpio","hwinfo","pwm","spi","uart","usb_device","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"arduino_nicla_sense_me","name":"Arduino Nicla Sense ME","img":"arduino_nicla_sense_me.jpg","arch":"arm","flash":512,"ram":64,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["gpio","i2c","spi","shell","counter","nvs","pwm","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"arduino_portenta_h7","name":"arduino_portenta_h7","img":"arduino_portenta_h7.jpg","arch":"arm","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"arduino_uno_r4","name":"arduino_uno_r4","img":null,"arch":"arm","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"arduino_zero","name":"Arduino Zero","img":"arduino_zero.jpg","arch":"arm","flash":256,"ram":32,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["adc","counter","dac","dma","gpio","hwinfo","pwm","spi","uart","usb_device","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"arty","name":"arty","img":null,"arch":"arm","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"ast1030_evb","name":"Aspeed AST1030-EVB","img":"ast1030_evb.jpg","arch":"arm","flash":1024,"ram":768,"toolchain":["zephyr"],"supported":["serial"],"level":"unverified","quickstart":null,"customDocMD":null}, @@ -53,7 +54,7 @@ {"boardId":"b_g474e_dpow1","name":"ST B-G474E-DPOW1 Discovery","img":"b_g474e_dpow1.jpg","arch":"arm","flash":512,"ram":128,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["uart","gpio","watchdog","tcpc","usb"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"b_l072z_lrwan1","name":"B_L072Z_LRWAN1","img":"b_l072z_lrwan1.jpg","arch":"arm","flash":192,"ram":20,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_i2c","spi","i2c","gpio","counter","eeprom","nvs","lora"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"b_l4s5i_iot01a","name":"ST B_L4S5I_IOT01A Discovery kit","img":null,"arch":"arm","flash":2048,"ram":640,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_gpio","arduino_i2c","i2c","hts221","lps22hb","lsm6dsl","pwm","gpio","ble","spi","vl53l0x","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, -{"boardId":"b_u585i_iot02a","name":"ST B_U585I_IOT02A Discovery kit","img":null,"arch":"arm","flash":2048,"ram":786,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_i2c","arduino_spi","hts221","dma","usb_device","spi","dac","adc","watchdog","nvs","backup_sram","pwm","counter"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"b_u585i_iot02a","name":"ST B_U585I_IOT02A Discovery kit","img":null,"arch":"arm","flash":2048,"ram":786,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_i2c","arduino_spi","hts221","dma","usb_device","spi","dac","adc","watchdog","nvs","backup_sram","pwm","counter","i2c"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"bbc_microbit","name":"BBC Micro:Bit","img":"bbc_microbit.jpg","arch":"arm","flash":null,"ram":16,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["ble","i2c","gpio","pwm"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"bbc_microbit_v2","name":"BBC Micro:Bit V2","img":null,"arch":"arm","flash":null,"ram":128,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["ble","i2c","gpio"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"bcm958401m2","name":"Broadcom BCM958401M2","img":null,"arch":"arm","flash":null,"ram":null,"toolchain":["zephyr","gnuarmemb"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, @@ -79,17 +80,17 @@ {"boardId":"cc26x2r1_launchxl","name":"TI SimpleLink CC26x2R LaunchPad","img":"cc26x2r1_launchxl.jpg","arch":"arm","flash":352,"ram":80,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["gpio","i2c","spi","watchdog","adc","hwinfo"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"cc3220sf_launchxl","name":"SimpleLink Wi-Fi CC3220SF LaunchPad development kit","img":null,"arch":"arm","flash":null,"ram":null,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["netif:wifi","i2c","gpio","adc","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"cc3235sf_launchxl","name":"SimpleLink Wi-Fi CC3235SF LaunchPad development kit","img":null,"arch":"arm","flash":null,"ram":null,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["netif:wifi","i2c","gpio","adc","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, -{"boardId":"circuitdojo_feather_nrf9160","name":"CircuitDojo-Feather-nRF9160","img":"circuitdojo_feather_nrf9160.jpg","arch":"arm","flash":256,"ram":64,"toolchain":["gnuarmemb","xtools","zephyr"],"supported":["i2c","pwm","watchdog","counter"],"level":"verified","quickstart":"/hardware/nrf91/zephyr-quickstart","customDocMD":null}, +{"boardId":"circuitdojo_feather_nrf9160","name":"CircuitDojo-Feather-nRF9160","img":"circuitdojo_feather_nrf9160.jpg","arch":"arm","flash":256,"ram":64,"toolchain":["gnuarmemb","xtools","zephyr"],"supported":["i2c","pwm","watchdog","counter"],"level":"verified","quickstart":"/firmware/hardware/nrf91/zephyr-quickstart","customDocMD":null}, {"boardId":"colibri_imx7d_m4","name":"TORADEX Colibri IMX7D","img":"colibri_imx7d_m4.jpg","arch":"arm","flash":32,"ram":32,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["pwm"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"contextualelectronics_abc","name":"contextualelectronics_abc","img":"contextualelectronics_abc.jpg","arch":"arm","flash":1024,"ram":256,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_i2c","arduino_spi","gpio","i2c","spi","netif:openthread"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"cy8ckit_062_ble","name":"cy8ckit_062_ble","img":null,"arch":"arm","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"cy8ckit_062_wifi_bt","name":"cy8ckit_062_wifi_bt","img":null,"arch":"arm","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"cy8ckit_062s4","name":"cy8ckit_062s4","img":"cy8ckit_062s4.png","arch":"arm","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, -{"boardId":"cy8cproto_062_4343w","name":"CY8CPROTO-062-4343W PSoC 6 Wi-Fi BT Prototyping Kit","img":null,"arch":"arm","flash":2048,"ram":288,"toolchain":["zephyr","gnuarmemb"],"supported":["adc","counter","gpio","uart","i2c"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"cy8cproto_062_4343w","name":"CY8CPROTO-062-4343W PSoC 6 Wi-Fi BT Prototyping Kit","img":null,"arch":"arm","flash":2048,"ram":288,"toolchain":["zephyr","gnuarmemb"],"supported":["adc","bluetooth","wifi","airoc","cyw4343w","counter","gpio","uart","i2c"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"cy8cproto_063_ble","name":"CY8CPROTO-063-BLE PSoCℱ 6 BLE Prototyping Kit","img":null,"arch":"arm","flash":1024,"ram":288,"toolchain":["zephyr","gnuarmemb"],"supported":["adc","gpio","uart","i2c","watchdog","spi"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"cyclonev_socdk","name":"Intel Cyclone V SoC FPGA","img":null,"arch":"arm","flash":null,"ram":null,"toolchain":["zephyr","gnuarmemb"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"da14695_dk_usb","name":"DA14695_DK_USB","img":null,"arch":"arm","flash":null,"ram":512,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_gpio","gpio","watchdog","i2c","spi","usb_device"],"level":"unverified","quickstart":null,"customDocMD":null}, -{"boardId":"da1469x_dk_pro","name":"DA1469X_DK_PRO","img":null,"arch":"arm","flash":null,"ram":512,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_gpio","counter","gpio","watchdog","i2c","spi","usb_device","rtc"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"da1469x_dk_pro","name":"DA1469X_DK_PRO","img":null,"arch":"arm","flash":null,"ram":512,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_gpio","counter","gpio","watchdog","i2c","spi","usb_device","rtc","crypto","dma"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"decawave_dwm1001_dev","name":"Decawave-DWM1001-DEV","img":null,"arch":"arm","flash":512,"ram":64,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["spi","i2c"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"degu_evk","name":"Degu Evaluation Kit","img":"degu_evk.jpg","arch":"arm","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["i2c","adc","usb_device"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"disco_l475_iot1","name":"ST Disco L475 IOT01 (B-L475E-IOT01A)","img":"disco_l475_iot1.jpg","arch":"arm","flash":1024,"ram":96,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_gpio","arduino_i2c","i2c","hts221","lps22hb","lsm6dsl","pwm","counter","gpio","ble","spi","nvs","vl53l0x","watchdog","adc","dac","qspi","dma"],"level":"unverified","quickstart":null,"customDocMD":null}, @@ -165,7 +166,7 @@ {"boardId":"mimxrt1040_evk","name":"NXP MIMXRT1040-EVK","img":"mimxrt1040_evk.jpg","arch":"arm","flash":8192,"ram":32768,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_gpio","gpio","pwm","adc","spi","i2c"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"mimxrt1050_evk","name":"NXP MIMXRT1050-EVK","img":"mimxrt1050_evk.jpg","arch":"arm","flash":65536,"ram":32768,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_gpio","arduino_serial","counter","display","dma","gpio","i2c","netif:eth","sdhc","spi","usb_device","watchdog","adc"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"mimxrt1060_evk","name":"NXP MIMXRT1060-EVK","img":"mimxrt1060_evk.jpg","arch":"arm","flash":8192,"ram":32768,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_gpio","arduino_i2c","arduino_serial","arduino_spi","counter","display","dma","gpio","i2c","netif:eth","sdhc","spi","usb_device","dma","can","watchdog","adc"],"level":"unverified","quickstart":null,"customDocMD":null}, -{"boardId":"mimxrt1060_evkb","name":"NXP MIMXRT1060-EVKB","img":"mimxrt1060_evkb.jpg","arch":"arm","flash":8192,"ram":32768,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_gpio","arduino_serial","counter","display","gpio","i2c","netif:eth","sdhc","spi","usb_device","kscan:touch","dma","can","watchdog","adc"],"level":"continuously-verified","quickstart":"/hardware/mimxrt1060_evkb/zephyr-quickstart","customDocMD":"The EVKB version of this board does not have its own documentation in the Zephyr tree, but it is closely related to the [mimxrt1060_evkb](https://docs.zephyrproject.org/latest/boards/arm/mimxrt1060_evk/doc/index.html)."}, +{"boardId":"mimxrt1060_evkb","name":"NXP MIMXRT1060-EVKB","img":"mimxrt1060_evkb.jpg","arch":"arm","flash":8192,"ram":32768,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_gpio","arduino_serial","counter","display","gpio","i2c","netif:eth","sdhc","spi","usb_device","kscan:touch","dma","can","watchdog","adc"],"level":"continuously-verified","quickstart":"/firmware/hardware/mimxrt1060_evkb/zephyr-quickstart","customDocMD":"The EVKB version of this board does not have its own documentation in the Zephyr tree, but it is closely related to the [mimxrt1060_evkb](https://docs.zephyrproject.org/latest/boards/arm/mimxrt1060_evk/doc/index.html)."}, {"boardId":"mimxrt1062_fmurt6","name":"NXP MIMXRT1062-FMURT6","img":"mimxrt1062_fmurt6.jpg","arch":"arm","flash":65536,"ram":768,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["counter","uart","dma","gpio","i2c","netif:eth","sdhc","spi","usb_device","can","watchdog","adc","pwm"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"mimxrt1064_evk","name":"NXP MIMXRT1064-EVK","img":"mimxrt1064_evk.jpg","arch":"arm","flash":4096,"ram":32768,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_gpio","arduino_serial","counter","display","dma","gpio","hwinfo","i2c","netif:eth","pwm","sdhc","spi","usb_device","video","can","watchdog","adc"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"mimxrt1160_evk","name":"mimxrt1160_evk","img":"mimxrt1160_evk.jpg","arch":"arm","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, @@ -207,10 +208,11 @@ {"boardId":"nrf52dk_nrf52832","name":"nRF52-DK-NRF52832","img":"nrf52dk_nrf52832.jpg","arch":"arm","flash":512,"ram":64,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["adc","arduino_gpio","arduino_i2c","arduino_spi","gpio","counter","nvs","i2c","pwm","spi","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"nrf5340_audio_dk_nrf5340","name":"nrf5340_audio_dk_nrf5340","img":null,"arch":"arm","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"nrf5340dk_nrf5340","name":"nrf5340dk_nrf5340","img":null,"arch":"arm","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"nrf9131ek_nrf9131","name":"nRF9131-EK-NRF9131","img":null,"arch":"arm","flash":1024,"ram":88,"toolchain":["gnuarmemb","xtools","zephyr"],"supported":["gpio","i2c","pwm","spi","watchdog","counter"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"nrf9160_innblue21","name":"nRF9160-INNBLUE21","img":"nrf9160_innblue21.jpg","arch":"arm","flash":256,"ram":64,"toolchain":["gnuarmemb","xtools","zephyr"],"supported":["i2c","pwm","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"nrf9160_innblue22","name":"nRF9160-INNBLUE22","img":"nrf9160_innblue22.jpg","arch":"arm","flash":256,"ram":64,"toolchain":["gnuarmemb","xtools","zephyr"],"supported":["i2c","pwm","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"nrf9160dk_nrf52840","name":"nRF9160-DK-NRF52840","img":null,"arch":"arm","flash":512,"ram":64,"toolchain":["zephyr","gnuarmemb"],"supported":["ble","netif:openthread","gpio"],"level":"unverified","quickstart":null,"customDocMD":null}, -{"boardId":"nrf9160dk_nrf9160","name":"nRF9160-DK-NRF9160","img":"nrf9160dk_nrf9160.jpg","arch":"arm","flash":1024,"ram":88,"toolchain":["gnuarmemb","xtools","zephyr"],"supported":["arduino_gpio","arduino_i2c","arduino_serial","arduino_spi","gpio","i2c","pwm","spi","watchdog","counter"],"level":"continuously-verified","quickstart":"/hardware/nrf91/zephyr-quickstart","customDocMD":null}, +{"boardId":"nrf9160dk_nrf9160","name":"nRF9160-DK-NRF9160","img":"nrf9160dk_nrf9160.jpg","arch":"arm","flash":1024,"ram":88,"toolchain":["gnuarmemb","xtools","zephyr"],"supported":["arduino_gpio","arduino_i2c","arduino_serial","arduino_spi","gpio","i2c","pwm","spi","watchdog","counter"],"level":"continuously-verified","quickstart":"/firmware/hardware/nrf91/zephyr-quickstart","customDocMD":null}, {"boardId":"nrf9161dk_nrf9161","name":"nRF9161-DK-NRF9161","img":null,"arch":"arm","flash":1024,"ram":88,"toolchain":["gnuarmemb","xtools","zephyr"],"supported":["arduino_gpio","arduino_i2c","arduino_serial","arduino_spi","gpio","i2c","pwm","spi","watchdog","counter"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"nucleo_c031c6","name":"ST Nucleo C031C6","img":"nucleo_c031c6.jpg","arch":"arm","flash":32,"ram":12,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["gpio","counter","watchdog","pwm","adc","i2c","dma"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"nucleo_f030r8","name":"ST Nucleo F030R8","img":"nucleo_f030r8.jpg","arch":"arm","flash":64,"ram":8,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_gpio","arduino_i2c","arduino_spi","i2c","spi","gpio","watchdog","adc"],"level":"unverified","quickstart":null,"customDocMD":null}, @@ -264,7 +266,7 @@ {"boardId":"nucleo_u575zi_q","name":"ST Nucleo U575ZI Q","img":null,"arch":"arm","flash":2048,"ram":786,"toolchain":["zephyr","gnuarmemb"],"supported":["arduino_gpio","arduino_i2c","arduino_serial","arduino_spi","can","adc","dac","gpio","i2c","spi","usart","watchdog","backup_sram","dma"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"nucleo_u5a5zj_q","name":"ST Nucleo U5A5ZJ Q","img":null,"arch":"arm","flash":4096,"ram":2450,"toolchain":["zephyr","gnuarmemb"],"supported":["arduino_gpio","arduino_i2c","arduino_serial","arduino_spi","can","adc","dac","gpio","i2c","spi","usart","watchdog","backup_sram","dma"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"nucleo_wb55rg","name":"ST Nucleo WB55RG","img":null,"arch":"arm","flash":808,"ram":192,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["gpio","i2c","counter","dma","spi","pwm","adc","watchdog","arduino_gpio","arduino_i2c","arduino_spi","usb_device","nvs"],"level":"unverified","quickstart":null,"customDocMD":null}, -{"boardId":"nucleo_wba52cg","name":"ST Nucleo WBA52CG","img":null,"arch":"arm","flash":1024,"ram":128,"toolchain":["zephyr","gnuarmemb"],"supported":["gpio","i2c","spi","adc","watchdog","rng","arduino_gpio","arduino_i2c","arduino_spi"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"nucleo_wba52cg","name":"ST Nucleo WBA52CG","img":null,"arch":"arm","flash":1024,"ram":128,"toolchain":["zephyr","gnuarmemb"],"supported":["gpio","i2c","spi","adc","watchdog","rng","arduino_gpio","arduino_i2c","arduino_spi","counter"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"nucleo_wl55jc","name":"ST Nucleo WL55JC","img":"nucleo_wl55jc.jpg","arch":"arm","flash":256,"ram":64,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["gpio","i2c","spi","arduino_gpio","arduino_i2c","arduino_spi","adc","dac","pwm","counter","dma","watchdog","nvs","lora"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"numaker_pfm_m467","name":"NUVOTON NUMAKER-PFM-M467 Kit","img":null,"arch":"arm","flash":1024,"ram":512,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["gpio"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"nuvoton_pfm_m487","name":"NUVOTON-PFM-M487","img":null,"arch":"arm","flash":512,"ram":160,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, @@ -279,6 +281,7 @@ {"boardId":"pan1780_evb","name":"pan1780-evb","img":null,"arch":"arm","flash":1024,"ram":256,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["adc","arduino_gpio","arduino_i2c","arduino_spi","ble","counter","gpio","i2c","i2s","pwm","spi","usb_cdc","usb_device","watchdog","netif:openthread"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"pan1781_evb","name":"pan1781-evb","img":null,"arch":"arm","flash":256,"ram":32,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_gpio","arduino_i2c","arduino_spi","ble","gpio","i2c","spi","watchdog","counter"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"pan1782_evb","name":"pan1782-evb","img":null,"arch":"arm","flash":512,"ram":128,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["adc","arduino_gpio","arduino_i2c","arduino_spi","usb_device","ble","gpio","i2c","spi","pwm","watchdog","counter"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"pan1783_evb","name":"pan1783_evb","img":"pan1783_evb.jpg","arch":"arm","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"pandora_stm32l475","name":"STM32L475 Pandora","img":"pandora_stm32l475.jpg","arch":"arm","flash":512,"ram":128,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["gpio","counter"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"particle_argon","name":"Particle Argon","img":"particle_argon.jpg","arch":"arm","flash":1024,"ram":512,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["i2c","spi","gpio","usb_device","ble","feather_serial","feather_i2c","feather_spi"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"particle_boron","name":"Particle Boron","img":"particle_boron.jpg","arch":"arm","flash":1024,"ram":512,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["i2c","spi","gpio","usb_device","ble","feather_serial","feather_i2c","feather_spi"],"level":"unverified","quickstart":null,"customDocMD":null}, @@ -288,7 +291,7 @@ {"boardId":"pinnacle_100_dvk","name":"pinnacle-100-dvk","img":"pinnacle_100_dvk.jpg","arch":"arm","flash":1024,"ram":256,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["adc","ble","counter","gpio","i2c","pwm","spi","usb_cdc","usb_device","watchdog","netif:modem"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"qemu_cortex_a9","name":"QEMU Emulation for Cortex-A9","img":null,"arch":"arm","flash":262144,"ram":524288,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["net","netif:eth"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"qemu_cortex_m0","name":"QEMU Emulation for Cortex-M0","img":null,"arch":"arm","flash":256,"ram":16,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, -{"boardId":"qemu_cortex_m3","name":"QEMU Emulation for Cortex-M3","img":"qemu_cortex_m3.jpg","arch":"arm","flash":256,"ram":64,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["netif:serial-net","gpio"],"level":"continuously-verified","quickstart":"/hardware/virtual-devices/zephyr-quickstart","customDocMD":null}, +{"boardId":"qemu_cortex_m3","name":"QEMU Emulation for Cortex-M3","img":"qemu_cortex_m3.jpg","arch":"arm","flash":256,"ram":64,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["netif:serial-net","gpio"],"level":"continuously-verified","quickstart":"/firmware/hardware/virtual-devices/zephyr-quickstart","customDocMD":null}, {"boardId":"qemu_cortex_r5","name":"QEMU Emulation for Cortex-R5","img":null,"arch":"arm","flash":32768,"ram":65536,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"qomu","name":"QuickLogic Qomu","img":null,"arch":"arm","flash":null,"ram":null,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"quick_feather","name":"QuickLogic Quick Feather","img":null,"arch":"arm","flash":null,"ram":null,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, @@ -306,6 +309,7 @@ {"boardId":"ronoth_lodev","name":"Ronoth LoDev","img":null,"arch":"arm","flash":192,"ram":20,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["gpio","i2c","spi","watchdog","adc","dac","lora"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"rpi_pico","name":"RaspberryPi-Pico","img":"rpi_pico.jpg","arch":"arm","flash":2048,"ram":264,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["uart","gpio","adc","i2c","spi","hwinfo","watchdog","pwm","flash","dma","counter"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"ruuvi_ruuvitag","name":"Ruuvi-RuuviTag","img":null,"arch":"arm","flash":512,"ram":64,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["ble","adc","gpio","spi","counter","nvs","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"rzt2m_starterkit","name":"rzt2m_starterkit","img":"rzt2m_starterkit.png","arch":"arm","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"s32z270dc2_r52","name":"s32z270dc2_r52","img":null,"arch":"arm","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"sam4e_xpro","name":"SAM4E Xplained Pro","img":"sam4e_xpro.jpg","arch":"arm","flash":null,"ram":null,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["netif:eth","gpio","spi","sdhc","watchdog","xpro_gpio","xpro_i2c","xpro_serial","xpro_spi"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"sam4l_ek","name":"SAM4L-EK","img":null,"arch":"arm","flash":256,"ram":32,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["gpio","i2c","spi","usart","usb_device"],"level":"unverified","quickstart":null,"customDocMD":null}, @@ -316,6 +320,7 @@ {"boardId":"seeeduino_xiao","name":"Seeeduino XIAO","img":"seeeduino_xiao.jpg","arch":"arm","flash":256,"ram":32,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["dma","dac","gpio","hwinfo","spi","i2c","uart","usb_device","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"segger_trb_stm32f407","name":"Cortex-M Trace Reference Board V1.2","img":"segger_trb_stm32f407.jpg","arch":"arm","flash":512,"ram":192,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["counter","gpio","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"sensortile_box","name":"ST SensorTile.box","img":"sensortile_box.jpg","arch":"arm","flash":2048,"ram":640,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["pwm","spi","i2c","gpio","usb device","nvs","counter"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"sensortile_box_pro","name":"ST SensorTile.box Pro","img":"sensortile_box_pro.jpg","arch":"arm","flash":2048,"ram":640,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["pwm","spi","i2c","gpio","usb device","nvs","counter"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"serpente","name":"SERPENTE","img":"serpente.jpg","arch":"arm","flash":256,"ram":32,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["adc","counter","gpio","hwinfo","i2c","pwm","spi","uart","usb_device","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"sparkfun_pro_micro_rp2040","name":"Sparkfun Pro Micro RP2040","img":"sparkfun_pro_micro_rp2040.jpg","arch":"arm","flash":16384,"ram":264,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["uart","gpio","adc","i2c","spi","hwinfo","watchdog","pwm","flash","dma"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"sparkfun_thing_plus_nrf9160","name":"Sparkfun-Thing-Plus-nRF9160","img":"sparkfun_thing_plus_nrf9160.jpg","arch":"arm","flash":256,"ram":64,"toolchain":["gnuarmemb","xtools","zephyr"],"supported":["i2c","pwm","watchdog","counter"],"level":"unverified","quickstart":null,"customDocMD":null}, @@ -350,8 +355,10 @@ {"boardId":"stm32l1_disco","name":"ST STM32L1 Discovery","img":"stm32l1_disco.jpg","arch":"arm","flash":128,"ram":16,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["gpio","i2c","spi"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"stm32l476g_disco","name":"ST STM32L476G Discovery","img":"stm32l476g_disco.jpg","arch":"arm","flash":1024,"ram":96,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["gpio","counter"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"stm32l496g_disco","name":"ST STM32L496G Discovery","img":"stm32l496g_disco.jpg","arch":"arm","flash":1024,"ram":320,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_i2c","pwm","i2c","spi","gpio","counter","sdhc","adc","qspi"],"level":"unverified","quickstart":null,"customDocMD":null}, -{"boardId":"stm32l562e_dk","name":"ST STM32L562E-DK Discovery","img":"stm32l562e_dk.jpg","arch":"arm","flash":512,"ram":192,"toolchain":["zephyr","gnuarmemb"],"supported":["gpio","i2c","lptim","pwm","counter","watchdog","dac","adc","spi","dma","usart","arduino_spi","sdhc","usb","usb_device","nvs"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"stm32l4r9i_disco","name":"ST STM32L4R9I Discovery","img":"stm32l4r9i_disco.jpg","arch":"arm","flash":2048,"ram":640,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["adc","arduino_gpio","arduino_i2c","arduino_spi","gpio","i2c","pwm","rtc","sdhc","spi","uart","usb","usb_device"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"stm32l562e_dk","name":"ST STM32L562E-DK Discovery","img":"stm32l562e_dk.jpg","arch":"arm","flash":512,"ram":192,"toolchain":["zephyr","gnuarmemb"],"supported":["gpio","i2c","lptim","pwm","counter","watchdog","dac","adc","spi","ble","dma","usart","arduino_spi","sdhc","usb","usb_device","nvs"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"stm32mp157c_dk2","name":"ST STM32MP157C-DK2 Discovery","img":null,"arch":"arm","flash":64,"ram":256,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["arduino_i2c","arduino_gpio","gpio","shell","i2c","spi"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"stm32u5a9j_dk","name":"ST STM32U5A9J-DK Discovery Kit","img":null,"arch":"arm","flash":4096,"ram":2496,"toolchain":["zephyr","gnuarmemb"],"supported":["gpio","led","button","adc","uart","usart","lpuart","watchdog","spi","i2c","flash","sdmmc"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"stm32vl_disco","name":"ST STM32VL Discovery","img":"stm32vl_disco.jpg","arch":"arm","flash":128,"ram":8,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["gpio","i2c","spi"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"swan_r5","name":"Blues Wireless Swan","img":null,"arch":"arm","flash":2048,"ram":640,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["pwm","spi","i2c","gpio","usb_device","nvs","counter","adc"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"tdk_robokit1","name":"TDK RoboKit1","img":"tdk_robokit1.jpg","arch":"arm","flash":2048,"ram":384,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["dma","i2c","gpio","spi","watchdog","usb_device","pwm","can","hwinfo"],"level":"unverified","quickstart":null,"customDocMD":null}, @@ -375,16 +382,18 @@ {"boardId":"v2m_beetle","name":"V2M Beetle","img":"v2m_beetle.jpg","arch":"arm","flash":null,"ram":null,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["counter"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"v2m_musca_b1","name":"ARM V2M MUSCA B1","img":"v2m_musca_b1.jpg","arch":"arm","flash":null,"ram":null,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["gpio"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"v2m_musca_s1","name":"ARM V2M MUSCA-S1","img":"v2m_musca_s1.jpg","arch":"arm","flash":null,"ram":null,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["gpio"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"verdin_imx8mp_m7","name":"verdin_imx8mp_m7","img":null,"arch":"arm","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"vmu_rt1170","name":"NXP VMU RT1170","img":"vmu_rt1170.jpg","arch":"arm","flash":65536,"ram":256,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["adc","counter","can","dma","gpio","hwinfo","i2c","netif:eth","pwm","spi","usb_device","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"warp7_m4","name":"WaRP7 IMX7S","img":"warp7_m4.jpg","arch":"arm","flash":32,"ram":32,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["gpio","i2c"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"waveshare_open103z","name":"Waveshare Open103Z","img":"waveshare_open103z.jpg","arch":"arm","flash":512,"ram":64,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["gpio","spi","i2c","pwm","watchdog","adc","usb_device"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"we_ophelia1ev_nrf52805","name":"we_ophelia1ev_nrf52805","img":"we_ophelia1ev_nrf52805.jpg","arch":"arm","flash":192,"ram":24,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["counter","i2c","spi","uart"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"we_proteus2ev_nrf52832","name":"we_proteus2ev_nrf52832","img":"we_proteus2ev_nrf52832.jpg","arch":"arm","flash":512,"ram":64,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["adc","gpio","i2c","pwm","spi"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"we_proteus3ev_nrf52840","name":"we_proteus3ev_nrf52840","img":"we_proteus3ev_nrf52840.jpg","arch":"arm","flash":1024,"ram":256,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["adc","ble","gpio","i2c","spi"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"weact_stm32g431_core","name":"WeAct Studio STM32G431 Core Board","img":null,"arch":"arm","flash":128,"ram":32,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["counter","gpio","nvs","pinctrl","tcpc","uart","usb_device","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"wio_terminal","name":"Wio Terminal","img":"wio_terminal.png","arch":"arm","flash":512,"ram":192,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["adc","counter","dma","gpio","i2c","pwm","spi","usb_cdc","usb_device","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"xiao_ble","name":"XIAO BLE","img":"xiao_ble.jpg","arch":"arm","flash":1024,"ram":256,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["adc","ble","counter","gpio","i2c","i2s","pwm","spi","usb_cdc","usb_device","watchdog","netif:openthread"],"level":"unverified","quickstart":null,"customDocMD":null}, -{"boardId":"xmc45_relax_kit","name":"XMC45-RELAX-KIT","img":"xmc45_relax_kit.jpg","arch":"arm","flash":1024,"ram":160,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["adc","dma","gpio","spi","uart"],"level":"unverified","quickstart":null,"customDocMD":null}, -{"boardId":"xmc47_relax_kit","name":"XMC47-RELAX-KIT","img":"xmc47_relax_kit.jpg","arch":"arm","flash":2048,"ram":352,"toolchain":["zephyr","gnuarmemb"],"supported":["adc","dma","gpio","i2c","spi","uart","arduino_spi","arduino_serial"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"xmc45_relax_kit","name":"XMC45-RELAX-KIT","img":"xmc45_relax_kit.jpg","arch":"arm","flash":1024,"ram":160,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["adc","dma","gpio","spi","uart","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"xmc47_relax_kit","name":"XMC47-RELAX-KIT","img":"xmc47_relax_kit.jpg","arch":"arm","flash":2048,"ram":352,"toolchain":["zephyr","gnuarmemb"],"supported":["adc","dma","gpio","i2c","spi","uart","arduino_spi","arduino_serial","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"zybo","name":"Digilent Zybo","img":null,"arch":"arm","flash":null,"ram":524288,"toolchain":["zephyr","gnuarmemb","xtools"],"supported":["gpio"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"bcm958402m2_a72","name":"Broadcom BCM958402M2_A72","img":null,"arch":"arm64","flash":null,"ram":null,"toolchain":["zephyr","cross-compile"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"fvp_base_revc_2xaemv8a","name":"FVP Emulation FVP_Base_RevC-2xAEMvA","img":null,"arch":"arm64","flash":64,"ram":2048,"toolchain":["zephyr","cross-compile"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, @@ -402,6 +411,7 @@ {"boardId":"qemu_kvm_arm64","name":"QEMU Virt Emulation for AArch64 KVM","img":null,"arch":"arm64","flash":null,"ram":128,"toolchain":["zephyr","cross-compile"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"rcar_h3ulcb_ca57","name":"Renesas H3ULCB based on r8a77951","img":null,"arch":"arm64","flash":null,"ram":512,"toolchain":["zephyr","cross-compile"],"supported":["clock_control","uart"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"rcar_salvator_xs_m3","name":"Renesas Salvator XS M3 based on r8a77961","img":null,"arch":"arm64","flash":null,"ram":512,"toolchain":["zephyr","cross-compile"],"supported":["clock_control","uart"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"roc_rk3568_pc","name":"Rockchip ROC RK3568 PC","img":null,"arch":"arm64","flash":null,"ram":1024,"toolchain":["zephyr","cross-compile"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"rpi_4b","name":"Raspberry Pi 4 Model B","img":null,"arch":"arm64","flash":null,"ram":null,"toolchain":["zephyr","cross-compile"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"xenvm","name":"ARMv8 Xen Virtual Machine","img":null,"arch":"arm64","flash":null,"ram":16384,"toolchain":["zephyr","cross-compile"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"qemu_malta","name":"QEMU emulation for MIPS","img":null,"arch":"mips","flash":512,"ram":1024,"toolchain":["zephyr","xtools"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, @@ -409,8 +419,8 @@ {"boardId":"qemu_nios2","name":"QEMU Emulation for NIOS II","img":null,"arch":"nios2","flash":128,"ram":128,"toolchain":["zephyr","xtools"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"common","name":"common","img":null,"arch":"posix","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"doc","name":"doc","img":null,"arch":"posix","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, -{"boardId":"native_posix","name":"Native 32-bit POSIX port","img":null,"arch":"posix","flash":65536,"ram":65536,"toolchain":["host","llvm"],"supported":["can","eeprom","netif:eth","usb_device","adc","i2c","spi","gpio","rtc"],"level":"unverified","quickstart":null,"customDocMD":null}, -{"boardId":"native_sim","name":"Native Simulation port - 32-bit","img":null,"arch":"posix","flash":65536,"ram":65536,"toolchain":["host","llvm"],"supported":["can","eeprom","netif:eth","usb_device","adc","i2c","spi","gpio","rtc"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"native_posix","name":"Native 32-bit POSIX port","img":null,"arch":"posix","flash":65536,"ram":65536,"toolchain":["host","llvm"],"supported":["can","counter","eeprom","netif:eth","usb_device","adc","i2c","spi","gpio","rtc"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"native_sim","name":"Native Simulation port - 32-bit","img":null,"arch":"posix","flash":65536,"ram":65536,"toolchain":["host","llvm"],"supported":["can","counter","eeprom","netif:eth","usb_device","adc","i2c","spi","gpio","rtc"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"nrf_bsim","name":"nrf_bsim","img":null,"arch":"posix","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"adp_xc7k_ae350","name":"Andes ADP-XC7K AE350","img":null,"arch":"riscv","flash":null,"ram":512,"toolchain":["zephyr","cross-compile"],"supported":["gpio","counter","i2c","spi","eeprom","watchdog","mbox","flash","dma"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"esp32c3_devkitm","name":"ESP32-C3","img":null,"arch":"riscv","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["adc","gpio","i2c","watchdog","uart","dma","pwm","spi","counter","entropy"],"level":"unverified","quickstart":null,"customDocMD":null}, @@ -451,26 +461,30 @@ {"boardId":"intel_ish","name":"intel_ish","img":null,"arch":"x86","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"intel_rpl","name":"intel_rpl","img":null,"arch":"x86","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"qemu_x86","name":"QEMU Emulation for X86","img":null,"arch":"x86","flash":null,"ram":3000,"toolchain":["zephyr","xtools","llvm"],"supported":["pci","nvs","netif:serial-net","eeprom","can","rtc"],"level":"unverified","quickstart":null,"customDocMD":null}, -{"boardId":"up_squared","name":"UP Squared (x86_64)","img":"up_squared.jpg","arch":"x86","flash":null,"ram":256,"toolchain":["zephyr"],"supported":["smp"],"level":"unverified","quickstart":null,"customDocMD":null}, -{"boardId":"esp32","name":"esp32","img":"esp32.jpg","arch":"xtensa","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"continuously-verified","quickstart":"/hardware/esp32/zephyr-quickstart","customDocMD":null}, +{"boardId":"up_squared","name":"UP Squared (x86_64)","img":"up_squared.jpg","arch":"x86","flash":null,"ram":256,"toolchain":["zephyr"],"supported":["acpi","smp"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"esp32","name":"esp32","img":"esp32.jpg","arch":"xtensa","flash":null,"ram":null,"toolchain":[],"supported":[],"level":"continuously-verified","quickstart":"/firmware/hardware/esp32/zephyr-quickstart","customDocMD":null}, {"boardId":"esp32_devkitc_wroom","name":"ESP32-DevkitC-WROOM-32D","img":"esp32_devkitc_wroom.jpg","arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["adc","dac","gpio","i2c","watchdog","uart","nvs","pwm","dac","spi","counter","entropy"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"esp32_devkitc_wrover","name":"ESP32-DevkitC-WROVER-E","img":"esp32_devkitc_wrover.jpg","arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["adc","dac","gpio","i2c","watchdog","uart","nvs","pwm","dac","spi","counter","entropy"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"esp32_ethernet_kit","name":"ESP32 ETHERNET KIT","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["gpio","watchdog","uart","nvs","pwm"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"esp32_net","name":"ESP32_NET","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["gpio","i2c","uart"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"esp32s2_franzininho","name":"ESP32-S2 Franzininho","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["gpio","i2c","watchdog","uart","pinmux","nvs"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"esp32s2_lolin_mini","name":"Lolin ESP32-S2 Mini","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["gpio","watchdog","uart"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"esp32s2_saola","name":"ESP32-S2 Saola","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["adc","dac","gpio","i2c","watchdog","uart","nvs","pwm","spi","counter","entropy"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"esp32s3_devkitm","name":"ESP32-S3 DevKitM","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["gpio","uart","i2c","spi","can","counter","watchdog","entropy","pwm","dma"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"esp32s3_luatos_core","name":"ESP32-S3 Core","img":"esp32s3_luatos_core.jpg","arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["gpio","uart","i2c","spi","can","counter","watchdog","entropy","pwm","dma"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"esp_wrover_kit","name":"ESP WROVER KIT","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["adc","dac","gpio","i2c","watchdog","uart","nvs","pwm","spi","counter","entropy"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"heltec_wifi_lora32_v2","name":"HELTEC WiFi LoRa 32 (V2) Board","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["gpio","i2c","watchdog","uart","nvs"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"heltec_wireless_stick_lite_v3","name":"Heltec Wireless Stick Lite (V3)","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["gpio","uart","i2c","spi","can","counter","watchdog","entropy","pwm","dma","lora"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"intel_adsp_ace15_mtpm","name":"ACE 1.5 MTL M Audio DSP","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr","xcc","xt-clang"],"supported":["dma"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"intel_adsp_ace20_lnl","name":"ACE 2.0 LNL Audio DSP","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["xcc","xt-clang","zephyr"],"supported":["dma"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"intel_adsp_cavs25","name":"cAVS 2.5 Audio DSP (converged Audio Voice and Speech)","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["xcc","zephyr"],"supported":["dma","dai"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"m5stack_atoms3","name":"M5Stack AtomS3","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["gpio","i2c","spi","watchdog","regulator","uart","pinmux","nvs","display"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"m5stack_core2","name":"M5Stack Core2","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["gpio","i2c","spi","watchdog","regulator","uart","pinmux","nvs"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"m5stickc_plus","name":"M5StickC PLUS","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["gpio","i2c","spi","watchdog","uart","pinmux","nvs"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"nxp_adsp_imx8","name":"i.MX8 DSP","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, -{"boardId":"nxp_adsp_imx8m","name":"NXP i.MX8M Plus EVK Audio DSP","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["uart"],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"nxp_adsp_imx8m","name":"NXP i.MX8M Plus EVK Audio DSP","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["xcc","xt-clang","zephyr"],"supported":["uart"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"nxp_adsp_imx8x","name":"i.MX8X DSP","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, +{"boardId":"nxp_adsp_rt595","name":"i.MXRT595 DSP","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"odroid_go","name":"ODROID-GO","img":"odroid_go.jpg","arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["gpio","i2c","spi","watchdog","uart","nvs"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"olimex_esp32_evb","name":"Olimex ESP32-EVB","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr"],"supported":["can","counter","gpio","hwinfo","i2c","spi","uart","watchdog"],"level":"unverified","quickstart":null,"customDocMD":null}, {"boardId":"qemu_xtensa","name":"QEMU Emulation for Xtensa","img":null,"arch":"xtensa","flash":null,"ram":null,"toolchain":["zephyr","xtools"],"supported":[],"level":"unverified","quickstart":null,"customDocMD":null}, diff --git a/docs/firmware/zephyr-device-sdk/firmware-upgrade/2-build-sample-application.md b/docs/firmware/zephyr-device-sdk/firmware-upgrade/2-build-sample-application.md index 31d0864a..e3b6800c 100644 --- a/docs/firmware/zephyr-device-sdk/firmware-upgrade/2-build-sample-application.md +++ b/docs/firmware/zephyr-device-sdk/firmware-upgrade/2-build-sample-application.md @@ -32,7 +32,7 @@ updated firmware version and report the results to the Golioth Console. ### 1. Initial build and flash Navigate to the Golioth module in your zephyr install. If you followed [our -nRF9160 Zephyr Quickstart](/hardware/nrf91/zephyr-quickstart) this will be in +nRF9160 Zephyr Quickstart](/firmware/hardware/nrf91/zephyr-quickstart) this will be in the `golioth-ncs-workspace/module/lib/golioth` directory. Build and flash the sample code. diff --git a/docs/getting-started/1-overview.md b/docs/getting-started/1-overview.md index c290bcc4..305dae17 100644 --- a/docs/getting-started/1-overview.md +++ b/docs/getting-started/1-overview.md @@ -9,10 +9,10 @@ This guide will prepare your Golioth account to communicate directly with your h * [Register for your account on Golioth](https://console.golioth.io/login/) * Add a project and provision your first device -Once completed, you can to move on to [the Hardware section](/docs/firmware/hardware/1-home.md) to get a device (or emulated device) communicating with the Golioth Cloud. +Once completed, you can to move on to [the Hardware section](/firmware/hardware/) to get a device (or emulated device) communicating with the Golioth Cloud. ## Choose Golioth Console or Command Line Tools ![Console](./assets/console.png) -If this your first time trying out Golioth we recommend using [the Golioth Console](https://console.golioth.io/) which is a web-based tool. However, it is possible to accomplish everything in this guide by following [the Command Line Tools section](3-commandline/1-overview.md). +If this your first time trying out Golioth we recommend using [the Golioth Console](https://ole.golioth.io/) which is a web-based tool. However, it is possible to accomplish everything in this guide by following [the Command Line Tools section](3-commandline/1-overview.md). diff --git a/docs/landing_page.md b/docs/landing_page.md index deadfa44..c55fced8 100644 --- a/docs/landing_page.md +++ b/docs/landing_page.md @@ -15,14 +15,14 @@ We chose the [the Zephyr Projectℱ](https://www.zephyrproject.org), as the basi ## Get started today -To get started, check out the [Quickstart Guide](/getting-started/). That will get you set up with a Golioth account and help you to provision your first devices. Then you can choose which platform to try out using our [supported hardware](/hardware). +To get started, check out the [Quickstart Guide](/getting-started/). That will get you set up with a Golioth account and help you to provision your first devices. Then you can choose which platform to try out using our [supported hardware](/firmware/hardware). ## Navigation There are 5 major sections on the Golioth Docs page: - [Getting Started](/getting-started) - Start here! If you are confused at all, please [join our Discord](https://golioth.io/discord) or [let us know directly](mailto:devrel@golioth.io) -- [Hardware](/hardware) - This section details which device platforms are explicitly supported and how you can get started with them quickly. There is also a catalog of all hardware that works with Golioth and whether or not it has been verified by the Golioth team, the community, the Zephyr community, etc. +- [Hardware](/firmware/hardware) - This section details which device platforms are explicitly supported and how you can get started with them quickly. There is also a catalog of all hardware that works with Golioth and whether or not it has been verified by the Golioth team, the community, the Zephyr community, etc. - [Firmware](/firmware) - This is the "device side" features of our offerings, including device Software Development Kets (SDKs). This section shows how to run the sample firmware that connects to the offerings in the Services section. - [Cloud](/device-management) - This is the "server side" features of our offerings. Your embedded hardware will communicate with Golioth Services to push and pull information to the broader internet. This section details how to control and interact with each service, and also test the service without any hardware involved. This section also details how to interact with that data via webapps, mobile apps, and from anywhere else on the web. Make calls to the Golioth web API and display your users' data! - [Reference](/reference) - All generated API documentation lives here, including for the web side API and the Zephyr API diff --git a/docs/partials-common/getting-started_choose-device.md b/docs/partials-common/getting-started_choose-device.md index 0b994bb1..db01e464 100644 --- a/docs/partials-common/getting-started_choose-device.md +++ b/docs/partials-common/getting-started_choose-device.md @@ -1,4 +1,4 @@ The next step is to connect a device to Golioth using either the Golioth Firmware SDK or the Golioth Zephyr SDK. -## Next: [Hardware Overview](/hardware) +## Next: [Hardware Overview](/firmware/hardware) diff --git a/scripts/device-catalog/README.md b/scripts/device-catalog/README.md index 72248b51..e8071d7b 100644 --- a/scripts/device-catalog/README.md +++ b/scripts/device-catalog/README.md @@ -7,7 +7,7 @@ Currently, it uses the Zephyr repository as the only source. It outputs files into * `vendor/zephyr` -* `docs/hardware` +* `docs/firmware/hardware` * `static/img` which can then be re-used by Docusaurus pages and in the future other Golioth systems, too. @@ -38,7 +38,7 @@ You'll need Linux shell to execute the `.sh` script. ### Generating files -The `index.js` script will process and transform the available data sources into a folder structure in the `docs/hardware` and `static/img`. +The `index.js` script will process and transform the available data sources into a folder structure in the `docs/firmware/hardware` and `static/img`. ## Golioth Board Support Levels diff --git a/scripts/device-catalog/boardToMdx.js b/scripts/device-catalog/boardToMdx.js index 5b19104a..12c5d614 100644 --- a/scripts/device-catalog/boardToMdx.js +++ b/scripts/device-catalog/boardToMdx.js @@ -13,16 +13,16 @@ function boardToMdx(board) { 'unverified': 'Unverified', }; const levelLinks = { - 'continuously-verified': '/hardware#continuously-verified-boards', - 'verified': '/hardware#verified-boards', - 'unverified': '/hardware#unverified-boards', + 'continuously-verified': '/firmware/hardware#continuously-verified-boards', + 'verified': '/firmware/hardware#verified-boards', + 'unverified': '/firmware/hardware#unverified-boards', }; return `\ --- id: ${arch}_${boardId} title: ${name} -slug: /hardware/catalog/boards/${level}/${arch}_${boardId} +slug: /firmware/hardware/catalog/boards/${level}/${arch}_${boardId} description: IoT board ${name}, compatible with Golioth at ${level} level. image: /img/boards/${arch}/${img} ${level === 'unverified' ? 'sidebar_class_name: hide-item' : ''} diff --git a/scripts/device-catalog/support.json b/scripts/device-catalog/support.json index 5fe9e877..b0d66ae0 100644 --- a/scripts/device-catalog/support.json +++ b/scripts/device-catalog/support.json @@ -3,24 +3,24 @@ "arm": { "circuitdojo_feather_nrf9160": { "level": "verified", - "quickstart": "/hardware/nrf91/zephyr-quickstart" + "quickstart": "/firmware/hardware/nrf91/zephyr-quickstart" }, "mimxrt1060_evkb": { "level": "continuously-verified", - "quickstart": "/hardware/mimxrt1060_evkb/zephyr-quickstart", + "quickstart": "/firmware/hardware/mimxrt1060_evkb/zephyr-quickstart", "customDocMD": "The EVKB version of this board does not have its own documentation in the Zephyr tree, but it is closely related to the [mimxrt1060_evkb](https://docs.zephyrproject.org/latest/boards/arm/mimxrt1060_evk/doc/index.html)." }, "nrf9160dk_nrf9160": { "level": "continuously-verified", - "quickstart": "/hardware/nrf91/zephyr-quickstart" + "quickstart": "/firmware/hardware/nrf91/zephyr-quickstart" }, "qemu_cortex_m3": { "level": "continuously-verified", - "quickstart": "/hardware/virtual-devices/zephyr-quickstart" + "quickstart": "/firmware/hardware/virtual-devices/zephyr-quickstart" }, "qemu_x86": { "level": "continuously-verified", - "quickstart": "/hardware/virtual-devices/zephyr-quickstart" + "quickstart": "/firmware/hardware/virtual-devices/zephyr-quickstart" } }, "arm64": {}, @@ -32,7 +32,7 @@ "xtensa": { "esp32": { "level": "continuously-verified", - "quickstart": "/hardware/esp32/zephyr-quickstart" + "quickstart": "/firmware/hardware/esp32/zephyr-quickstart" } } } diff --git a/static/img/boards/arm/pan1783_evb.jpg b/static/img/boards/arm/pan1783_evb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..273253cfcf95df400908654c03accc1f7336bc33 GIT binary patch literal 57564 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

q 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%0A`eb`M$F?kEaPqr%8HB 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�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 D%rZd; literal 0 HcmV?d00001 diff --git a/static/img/boards/arm/stm32l4r9i_disco.jpg b/static/img/boards/arm/stm32l4r9i_disco.jpg new file mode 100644 index 0000000000000000000000000000000000000000..06914737b5b6b4c3c05dc142e4ca8ee0dca3cbf2 GIT binary patch literal 57892 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 z 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 Date: Tue, 21 Nov 2023 11:52:59 -0600 Subject: [PATCH 05/88] reorg: add data-management section This section will house LightDB State, LightDB stream, and Output Streams. Signed-off-by: Mike Szczys --- docs/data-management/README.md | 10 ++++++++++ docusaurus.config.js | 6 ++++++ sidebars.js | 22 +++++++++++++++------- 3 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 docs/data-management/README.md diff --git a/docs/data-management/README.md b/docs/data-management/README.md new file mode 100644 index 00000000..a4155cf1 --- /dev/null +++ b/docs/data-management/README.md @@ -0,0 +1,10 @@ +--- +title: Golioth Data Management +slug: /data-management +sidebar_position: 0 +--- + +This is a new section that discusses cloud-side control of data from your device +fleet. You will find information on accessing the data your devices have sent to +the Golioth servers, and connecting that data to external platforms like +InfluxDB, MondoDB, AWS, Azure, GCP. diff --git a/docusaurus.config.js b/docusaurus.config.js index b7862d0f..895c67f0 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -39,6 +39,12 @@ module.exports = { label: "Device Management", position: "left", }, + { + to: "data-management", + activeBasePath: "data-management", + label: "Data Management", + position: "left", + }, { to: "reference", activeBasePath: "reference", diff --git a/sidebars.js b/sidebars.js index 08738aee..ec9ab0b9 100644 --- a/sidebars.js +++ b/sidebars.js @@ -16,6 +16,13 @@ const mapFiles = (root,type) => { .map( f => `${root}/${type}/${f}`) } +const gettingstarted = [ + { + type: 'autogenerated', + dirName: 'getting-started', + }, +] + const firmware = [ { type: 'autogenerated', @@ -23,30 +30,31 @@ const firmware = [ }, ] -const reference = [ +const devicemanagement = [ { type: 'autogenerated', - dirName: 'reference', + dirName: 'device-management', }, ] -const gettingstarted = [ +const datamanagement = [ { type: 'autogenerated', - dirName: 'getting-started', + dirName: 'data-management', }, ] -const devicemanagement = [ +const reference = [ { type: 'autogenerated', - dirName: 'device-management', + dirName: 'reference', }, ] module.exports = { gettingstarted, - reference, firmware, devicemanagement, + datamanagement, + reference, }; From 9c89b7385b8ec8db0f2ae6f1377e629ad312e08f Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Tue, 21 Nov 2023 15:27:02 -0600 Subject: [PATCH 06/88] reorg: move Output Streams into Data Management Broad strokes to reorganize the Docs layout. Signed-off-by: Mike Szczys --- .../2-output-streams/1-mongo/README.md | 0 .../2-output-streams/1-mongo/_category_.yml | 0 .../1-mongo/assets/add-ip-address.png | Bin .../1-mongo/assets/atlas-connect-button.png | Bin .../1-mongo/assets/atlas-connection-string.png | Bin .../1-mongo/assets/atlas-network-access.png | Bin .../assets/choosing-timeseries-additional-prefs.png | Bin .../1-mongo/assets/create-collection-button.png | Bin .../1-mongo/assets/create-collection-form.png | Bin .../1-mongo/assets/create-outputstream-form.png | Bin .../1-mongo/assets/ip-access-list-entry.png | Bin .../1-mongo/assets/select-outputstream.png | Bin .../1-mongo/assets/timefield-metafield-form.png | Bin .../2-output-streams/2-webhook/README.md | 6 +++--- .../2-output-streams/2-webhook/_category_.yml | 0 .../2-output-streams/3-azure-event-hub/README.md | 6 +++--- .../3-azure-event-hub/_category_.yml | 0 .../2-output-streams/4-aws-sqs/README.md | 6 +++--- .../2-output-streams/4-aws-sqs/_category_.yml | 0 .../2-output-streams/4-aws-sqs/assets/msg-body.png | Bin .../4-aws-sqs/assets/msg-header.png | Bin .../2-output-streams/5-gcp-pubsub/README.md | 4 ++-- .../2-output-streams/5-gcp-pubsub/_category_.yml | 0 .../5-gcp-pubsub/assets/gcp-created-service-acc.png | Bin .../assets/gcp-detailing-service-acc.png | Bin .../assets/gcp-iam-create-service-acc.png | Bin .../5-gcp-pubsub/assets/gcp-pubsub-topic-name.png | Bin .../5-gcp-pubsub/assets/gcp-pubsub-topics.png | Bin .../golioth-creating-pubsub-output-stream.png | Bin .../assets/golioth-gcp-output-stream.png | Bin .../2-output-streams/6-datacake/README.md | 4 ++-- .../2-output-streams/6-datacake/_category_.yml | 0 .../2-output-streams/7-ubidots/README.md | 4 ++-- .../2-output-streams/7-ubidots/_category_.yml | 0 .../2-output-streams/8-influx/README.md | 2 +- .../2-output-streams/8-influx/_category_.yml | 0 .../8-influx/assets/2023-07-20_15-37.png | Bin .../2-output-streams/8-influx/assets/buckets.png | Bin .../8-influx/assets/cluster-url.png | Bin .../8-influx/assets/create-outputstream-form.png | Bin .../8-influx/assets/generate-token-button.png | Bin .../8-influx/assets/generate-token.png | Bin .../8-influx/assets/load-data-menu.png | Bin .../8-influx/assets/org-settings-menu.png | Bin .../8-influx/assets/select-outputstream.png | Bin .../8-influx/assets/token-create-form.png | Bin .../2-output-streams/9-event-types/2-events.mdx | 0 .../2-output-streams/9-event-types/README.md | 2 +- .../2-output-streams/9-event-types/_category_.yml | 0 .../2-output-streams/README.md | 2 +- .../2-output-streams/_category_.yml | 0 .../2-output-streams/messages.json | 0 .../output-streams_azure-event-hub-connect.png | Bin .../output-streams_azure-event-hub-send-policy.png | Bin ...output-streams_azure-event-hub-shared-access.png | Bin 55 files changed, 18 insertions(+), 18 deletions(-) rename docs/{device-management => data-management}/2-output-streams/1-mongo/README.md (100%) rename docs/{device-management => data-management}/2-output-streams/1-mongo/_category_.yml (100%) rename docs/{device-management => data-management}/2-output-streams/1-mongo/assets/add-ip-address.png (100%) rename docs/{device-management => data-management}/2-output-streams/1-mongo/assets/atlas-connect-button.png (100%) rename docs/{device-management => data-management}/2-output-streams/1-mongo/assets/atlas-connection-string.png (100%) rename docs/{device-management => data-management}/2-output-streams/1-mongo/assets/atlas-network-access.png (100%) rename docs/{device-management => data-management}/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png (100%) rename docs/{device-management => data-management}/2-output-streams/1-mongo/assets/create-collection-button.png (100%) rename docs/{device-management => data-management}/2-output-streams/1-mongo/assets/create-collection-form.png (100%) rename docs/{device-management => data-management}/2-output-streams/1-mongo/assets/create-outputstream-form.png (100%) rename docs/{device-management => data-management}/2-output-streams/1-mongo/assets/ip-access-list-entry.png (100%) rename docs/{device-management => data-management}/2-output-streams/1-mongo/assets/select-outputstream.png (100%) rename docs/{device-management => data-management}/2-output-streams/1-mongo/assets/timefield-metafield-form.png (100%) rename docs/{device-management => data-management}/2-output-streams/2-webhook/README.md (80%) rename docs/{device-management => data-management}/2-output-streams/2-webhook/_category_.yml (100%) rename docs/{device-management => data-management}/2-output-streams/3-azure-event-hub/README.md (87%) rename docs/{device-management => data-management}/2-output-streams/3-azure-event-hub/_category_.yml (100%) rename docs/{device-management => data-management}/2-output-streams/4-aws-sqs/README.md (88%) rename docs/{device-management => data-management}/2-output-streams/4-aws-sqs/_category_.yml (100%) rename docs/{device-management => data-management}/2-output-streams/4-aws-sqs/assets/msg-body.png (100%) rename docs/{device-management => data-management}/2-output-streams/4-aws-sqs/assets/msg-header.png (100%) rename docs/{device-management => data-management}/2-output-streams/5-gcp-pubsub/README.md (96%) rename docs/{device-management => data-management}/2-output-streams/5-gcp-pubsub/_category_.yml (100%) rename docs/{device-management => data-management}/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png (100%) rename docs/{device-management => data-management}/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png (100%) rename docs/{device-management => data-management}/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png (100%) rename docs/{device-management => data-management}/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png (100%) rename docs/{device-management => data-management}/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png (100%) rename docs/{device-management => data-management}/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png (100%) rename docs/{device-management => data-management}/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png (100%) rename docs/{device-management => data-management}/2-output-streams/6-datacake/README.md (95%) rename docs/{device-management => data-management}/2-output-streams/6-datacake/_category_.yml (100%) rename docs/{device-management => data-management}/2-output-streams/7-ubidots/README.md (95%) rename docs/{device-management => data-management}/2-output-streams/7-ubidots/_category_.yml (100%) rename docs/{device-management => data-management}/2-output-streams/8-influx/README.md (99%) rename docs/{device-management => data-management}/2-output-streams/8-influx/_category_.yml (100%) rename docs/{device-management => data-management}/2-output-streams/8-influx/assets/2023-07-20_15-37.png (100%) rename docs/{device-management => data-management}/2-output-streams/8-influx/assets/buckets.png (100%) rename docs/{device-management => data-management}/2-output-streams/8-influx/assets/cluster-url.png (100%) rename docs/{device-management => data-management}/2-output-streams/8-influx/assets/create-outputstream-form.png (100%) rename docs/{device-management => data-management}/2-output-streams/8-influx/assets/generate-token-button.png (100%) rename docs/{device-management => data-management}/2-output-streams/8-influx/assets/generate-token.png (100%) rename docs/{device-management => data-management}/2-output-streams/8-influx/assets/load-data-menu.png (100%) rename docs/{device-management => data-management}/2-output-streams/8-influx/assets/org-settings-menu.png (100%) rename docs/{device-management => data-management}/2-output-streams/8-influx/assets/select-outputstream.png (100%) rename docs/{device-management => data-management}/2-output-streams/8-influx/assets/token-create-form.png (100%) rename docs/{device-management => data-management}/2-output-streams/9-event-types/2-events.mdx (100%) rename docs/{device-management => data-management}/2-output-streams/9-event-types/README.md (88%) rename docs/{device-management => data-management}/2-output-streams/9-event-types/_category_.yml (100%) rename docs/{device-management => data-management}/2-output-streams/README.md (82%) rename docs/{device-management => data-management}/2-output-streams/_category_.yml (100%) rename docs/{device-management => data-management}/2-output-streams/messages.json (100%) rename docs/{device-management => data-management}/assets/output-streams_azure-event-hub-connect.png (100%) rename docs/{device-management => data-management}/assets/output-streams_azure-event-hub-send-policy.png (100%) rename docs/{device-management => data-management}/assets/output-streams_azure-event-hub-shared-access.png (100%) diff --git a/docs/device-management/2-output-streams/1-mongo/README.md b/docs/data-management/2-output-streams/1-mongo/README.md similarity index 100% rename from docs/device-management/2-output-streams/1-mongo/README.md rename to docs/data-management/2-output-streams/1-mongo/README.md diff --git a/docs/device-management/2-output-streams/1-mongo/_category_.yml b/docs/data-management/2-output-streams/1-mongo/_category_.yml similarity index 100% rename from docs/device-management/2-output-streams/1-mongo/_category_.yml rename to docs/data-management/2-output-streams/1-mongo/_category_.yml diff --git a/docs/device-management/2-output-streams/1-mongo/assets/add-ip-address.png b/docs/data-management/2-output-streams/1-mongo/assets/add-ip-address.png similarity index 100% rename from docs/device-management/2-output-streams/1-mongo/assets/add-ip-address.png rename to docs/data-management/2-output-streams/1-mongo/assets/add-ip-address.png diff --git a/docs/device-management/2-output-streams/1-mongo/assets/atlas-connect-button.png b/docs/data-management/2-output-streams/1-mongo/assets/atlas-connect-button.png similarity index 100% rename from docs/device-management/2-output-streams/1-mongo/assets/atlas-connect-button.png rename to docs/data-management/2-output-streams/1-mongo/assets/atlas-connect-button.png diff --git a/docs/device-management/2-output-streams/1-mongo/assets/atlas-connection-string.png b/docs/data-management/2-output-streams/1-mongo/assets/atlas-connection-string.png similarity index 100% rename from docs/device-management/2-output-streams/1-mongo/assets/atlas-connection-string.png rename to docs/data-management/2-output-streams/1-mongo/assets/atlas-connection-string.png diff --git a/docs/device-management/2-output-streams/1-mongo/assets/atlas-network-access.png b/docs/data-management/2-output-streams/1-mongo/assets/atlas-network-access.png similarity index 100% rename from docs/device-management/2-output-streams/1-mongo/assets/atlas-network-access.png rename to docs/data-management/2-output-streams/1-mongo/assets/atlas-network-access.png diff --git a/docs/device-management/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png b/docs/data-management/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png similarity index 100% rename from docs/device-management/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png rename to docs/data-management/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png diff --git a/docs/device-management/2-output-streams/1-mongo/assets/create-collection-button.png b/docs/data-management/2-output-streams/1-mongo/assets/create-collection-button.png similarity index 100% rename from docs/device-management/2-output-streams/1-mongo/assets/create-collection-button.png rename to docs/data-management/2-output-streams/1-mongo/assets/create-collection-button.png diff --git a/docs/device-management/2-output-streams/1-mongo/assets/create-collection-form.png b/docs/data-management/2-output-streams/1-mongo/assets/create-collection-form.png similarity index 100% rename from docs/device-management/2-output-streams/1-mongo/assets/create-collection-form.png rename to docs/data-management/2-output-streams/1-mongo/assets/create-collection-form.png diff --git a/docs/device-management/2-output-streams/1-mongo/assets/create-outputstream-form.png b/docs/data-management/2-output-streams/1-mongo/assets/create-outputstream-form.png similarity index 100% rename from docs/device-management/2-output-streams/1-mongo/assets/create-outputstream-form.png rename to docs/data-management/2-output-streams/1-mongo/assets/create-outputstream-form.png diff --git a/docs/device-management/2-output-streams/1-mongo/assets/ip-access-list-entry.png b/docs/data-management/2-output-streams/1-mongo/assets/ip-access-list-entry.png similarity index 100% rename from docs/device-management/2-output-streams/1-mongo/assets/ip-access-list-entry.png rename to docs/data-management/2-output-streams/1-mongo/assets/ip-access-list-entry.png diff --git a/docs/device-management/2-output-streams/1-mongo/assets/select-outputstream.png b/docs/data-management/2-output-streams/1-mongo/assets/select-outputstream.png similarity index 100% rename from docs/device-management/2-output-streams/1-mongo/assets/select-outputstream.png rename to docs/data-management/2-output-streams/1-mongo/assets/select-outputstream.png diff --git a/docs/device-management/2-output-streams/1-mongo/assets/timefield-metafield-form.png b/docs/data-management/2-output-streams/1-mongo/assets/timefield-metafield-form.png similarity index 100% rename from docs/device-management/2-output-streams/1-mongo/assets/timefield-metafield-form.png rename to docs/data-management/2-output-streams/1-mongo/assets/timefield-metafield-form.png diff --git a/docs/device-management/2-output-streams/2-webhook/README.md b/docs/data-management/2-output-streams/2-webhook/README.md similarity index 80% rename from docs/device-management/2-output-streams/2-webhook/README.md rename to docs/data-management/2-output-streams/2-webhook/README.md index 0bd5f08d..40bc6d05 100644 --- a/docs/device-management/2-output-streams/2-webhook/README.md +++ b/docs/data-management/2-output-streams/2-webhook/README.md @@ -1,7 +1,7 @@ --- id: overview title: Webhooks Overview -slug: /device-management/output-streams/webhook +slug: /data-management/output-streams/webhook --- Webhooks are a simple and flexible way to receive events from the Golioth platform using HTTP. It is really easy to build a web server to receive these events and you can write you own logic to process them. @@ -17,9 +17,9 @@ For each Output Stream type, there is a set of specify attributes. Here are the ### Example -As mentioned on [Output Streams Overview](/device-management/output-streams), events are sent using the [Cloud Events](https://cloudevents.io) format. For Webhooks specifically, some metadata of the event are sent as HTTP headers. +As mentioned on [Output Streams Overview](/data-management/output-streams), events are sent using the [Cloud Events](https://cloudevents.io) format. For Webhooks specifically, some metadata of the event are sent as HTTP headers. -Here is an example of an event arriving on a webhook. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/device-management/output-streams/event-types/events)). +Here is an example of an event arriving on a webhook. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/data-management/output-streams/event-types/events)). ``` POST {your-uri-path} HTTP/1.1 diff --git a/docs/device-management/2-output-streams/2-webhook/_category_.yml b/docs/data-management/2-output-streams/2-webhook/_category_.yml similarity index 100% rename from docs/device-management/2-output-streams/2-webhook/_category_.yml rename to docs/data-management/2-output-streams/2-webhook/_category_.yml diff --git a/docs/device-management/2-output-streams/3-azure-event-hub/README.md b/docs/data-management/2-output-streams/3-azure-event-hub/README.md similarity index 87% rename from docs/device-management/2-output-streams/3-azure-event-hub/README.md rename to docs/data-management/2-output-streams/3-azure-event-hub/README.md index 65750a18..74ab9a52 100644 --- a/docs/device-management/2-output-streams/3-azure-event-hub/README.md +++ b/docs/data-management/2-output-streams/3-azure-event-hub/README.md @@ -1,7 +1,7 @@ --- id: overview title: Azure Event Hub Overview -slug: /device-management/output-streams/azure-event-hub +slug: /data-management/output-streams/azure-event-hub --- Azure Event Hub is a fully managed, real-time data ingestion service that can be used to consume Golioth events in a simple, trusted, and scalable way. You can ingest data in multiple ways inside Azure with support for popular protocols, including AMQP, HTTPS, and Apache Kafka. You can also consume Azure Event Hub in a serverless manner using Azure Functions. @@ -33,9 +33,9 @@ To use this integration, you need to create an Event Hub on Azure and get the co ### Example -As mentioned on [Output Streams Overview](/device-management/output-streams), events are sent using [Cloud Events](https://cloudevents.io) format. For Azure Event Hub, some metadata of the event are sent together with the message body. +As mentioned on [Output Streams Overview](/data-management/output-streams), events are sent using [Cloud Events](https://cloudevents.io) format. For Azure Event Hub, some metadata of the event are sent together with the message body. -Here is an example of an event arriving on Event Hub. The payload will be inside a `data` attribute (see event payloads on [Output Streams Event Types](/device-management/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. +Here is an example of an event arriving on Event Hub. The payload will be inside a `data` attribute (see event payloads on [Output Streams Event Types](/data-management/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. ```json { diff --git a/docs/device-management/2-output-streams/3-azure-event-hub/_category_.yml b/docs/data-management/2-output-streams/3-azure-event-hub/_category_.yml similarity index 100% rename from docs/device-management/2-output-streams/3-azure-event-hub/_category_.yml rename to docs/data-management/2-output-streams/3-azure-event-hub/_category_.yml diff --git a/docs/device-management/2-output-streams/4-aws-sqs/README.md b/docs/data-management/2-output-streams/4-aws-sqs/README.md similarity index 88% rename from docs/device-management/2-output-streams/4-aws-sqs/README.md rename to docs/data-management/2-output-streams/4-aws-sqs/README.md index af57a112..a604e760 100644 --- a/docs/device-management/2-output-streams/4-aws-sqs/README.md +++ b/docs/data-management/2-output-streams/4-aws-sqs/README.md @@ -1,7 +1,7 @@ --- id: overview title: AWS SQS Overview -slug: /device-management/output-streams/aws-sqs +slug: /data-management/output-streams/aws-sqs --- Amazon Simple Queue Service (SQS) is a fully managed message queuing service that enables you receive events generated on the Golioth platform that can be processed in a decoupled and scalable way. SQS eliminates the complexity and overhead associated with managing and operating message-oriented middleware systems. Data can be ingested using multiple solutions inside of AWS, including Serverless offerings like AWS Lambda. @@ -55,9 +55,9 @@ To use this integration, you need to create an SQS Queue and and a user with per ### Example -As mentioned on the [Output Streams Overview](/device-management/output-streams), events are sent using the [Cloud Events](https://cloudevents.io) format. For AWS SQS, some metadata of the event are sent together with the message body. +As mentioned on the [Output Streams Overview](/data-management/output-streams), events are sent using the [Cloud Events](https://cloudevents.io) format. For AWS SQS, some metadata of the event are sent together with the message body. -Here is an example of an event arriving on SQS. The payload is going to be inside of a `data` attribute (see event payloads on [Output Streams Event Types](/device-management/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. +Here is an example of an event arriving on SQS. The payload is going to be inside of a `data` attribute (see event payloads on [Output Streams Event Types](/data-management/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. ```json { diff --git a/docs/device-management/2-output-streams/4-aws-sqs/_category_.yml b/docs/data-management/2-output-streams/4-aws-sqs/_category_.yml similarity index 100% rename from docs/device-management/2-output-streams/4-aws-sqs/_category_.yml rename to docs/data-management/2-output-streams/4-aws-sqs/_category_.yml diff --git a/docs/device-management/2-output-streams/4-aws-sqs/assets/msg-body.png b/docs/data-management/2-output-streams/4-aws-sqs/assets/msg-body.png similarity index 100% rename from docs/device-management/2-output-streams/4-aws-sqs/assets/msg-body.png rename to docs/data-management/2-output-streams/4-aws-sqs/assets/msg-body.png diff --git a/docs/device-management/2-output-streams/4-aws-sqs/assets/msg-header.png b/docs/data-management/2-output-streams/4-aws-sqs/assets/msg-header.png similarity index 100% rename from docs/device-management/2-output-streams/4-aws-sqs/assets/msg-header.png rename to docs/data-management/2-output-streams/4-aws-sqs/assets/msg-header.png diff --git a/docs/device-management/2-output-streams/5-gcp-pubsub/README.md b/docs/data-management/2-output-streams/5-gcp-pubsub/README.md similarity index 96% rename from docs/device-management/2-output-streams/5-gcp-pubsub/README.md rename to docs/data-management/2-output-streams/5-gcp-pubsub/README.md index 59122e34..32301c38 100644 --- a/docs/device-management/2-output-streams/5-gcp-pubsub/README.md +++ b/docs/data-management/2-output-streams/5-gcp-pubsub/README.md @@ -1,7 +1,7 @@ --- id: overview title: Google Cloud Platform (GCP) PubSub Overview -slug: /device-management/output-streams/gcp-pubsub +slug: /data-management/output-streams/gcp-pubsub --- [Google Cloud PubSub](https://cloud.google.com/pubsub/) works as a messaging middleware for traditional service integration or a simple communication medium for modern microservices. Events can be ingested with serverless environments like Cloud Functions, Cloud Run or custom environments on Google Kubernetes Engine or Compute Engine. @@ -108,7 +108,7 @@ Go the [Golioth Platform](https://console.golioth.io), log in and select your Pr Golioth Output Streams use the [Cloud Events](https://cloudevents.io) format. For GCP PubSub, this means some metadata of the event are sent together with the message body. -Here is an example of an event arriving on PubSub. The payload will be inside a `data` attribute (see event payloads on [Output Streams Event Types](/device-management/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. +Here is an example of an event arriving on PubSub. The payload will be inside a `data` attribute (see event payloads on [Output Streams Event Types](/data-management/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. ```json { diff --git a/docs/device-management/2-output-streams/5-gcp-pubsub/_category_.yml b/docs/data-management/2-output-streams/5-gcp-pubsub/_category_.yml similarity index 100% rename from docs/device-management/2-output-streams/5-gcp-pubsub/_category_.yml rename to docs/data-management/2-output-streams/5-gcp-pubsub/_category_.yml diff --git a/docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png b/docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png similarity index 100% rename from docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png rename to docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png diff --git a/docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png b/docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png similarity index 100% rename from docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png rename to docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png diff --git a/docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png b/docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png similarity index 100% rename from docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png rename to docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png diff --git a/docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png b/docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png similarity index 100% rename from docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png rename to docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png diff --git a/docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png b/docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png similarity index 100% rename from docs/device-management/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png rename to docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png diff --git a/docs/device-management/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png b/docs/data-management/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png similarity index 100% rename from docs/device-management/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png rename to docs/data-management/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png diff --git a/docs/device-management/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png b/docs/data-management/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png similarity index 100% rename from docs/device-management/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png rename to docs/data-management/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png diff --git a/docs/device-management/2-output-streams/6-datacake/README.md b/docs/data-management/2-output-streams/6-datacake/README.md similarity index 95% rename from docs/device-management/2-output-streams/6-datacake/README.md rename to docs/data-management/2-output-streams/6-datacake/README.md index 1c4e2077..b176a5e3 100644 --- a/docs/device-management/2-output-streams/6-datacake/README.md +++ b/docs/data-management/2-output-streams/6-datacake/README.md @@ -1,7 +1,7 @@ --- id: overview title: Datacake Overview -slug: /device-management/output-streams/datacake +slug: /data-management/output-streams/datacake --- [Datacake](https://datacake.co/) is a multi-purpose, low-code IoT platform that requires no programming skills and minimal time to create custom IoT applications that can be brought into a white label IoT solution at the push of a button. @@ -40,7 +40,7 @@ In this tutorial you will see how to: Golioth Output Streams use the [Cloud Events](https://cloudevents.io) format. For Datacake, this means some metadata of the event are sent as HTTP headers. -Here is an example of an event arriving on Datcake. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/device-management/output-streams/event-types/events)). +Here is an example of an event arriving on Datcake. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/data-management/output-streams/event-types/events)). ``` diff --git a/docs/device-management/2-output-streams/6-datacake/_category_.yml b/docs/data-management/2-output-streams/6-datacake/_category_.yml similarity index 100% rename from docs/device-management/2-output-streams/6-datacake/_category_.yml rename to docs/data-management/2-output-streams/6-datacake/_category_.yml diff --git a/docs/device-management/2-output-streams/7-ubidots/README.md b/docs/data-management/2-output-streams/7-ubidots/README.md similarity index 95% rename from docs/device-management/2-output-streams/7-ubidots/README.md rename to docs/data-management/2-output-streams/7-ubidots/README.md index 8042158f..b02a819f 100644 --- a/docs/device-management/2-output-streams/7-ubidots/README.md +++ b/docs/data-management/2-output-streams/7-ubidots/README.md @@ -1,7 +1,7 @@ --- id: overview title: Ubidots Overview -slug: /device-management/output-streams/ubidots +slug: /data-management/output-streams/ubidots --- [Ubidots](https://ubidots.com/) makes it easy to white-label visualizations to produce a @@ -46,7 +46,7 @@ In this tutorial you will see how to: Golioth Output Streams use the [Cloud Events](https://cloudevents.io) format. For Ubidots, this means some metadata of the event are sent as HTTP headers. -Here is an example of an event arriving on Ubidots. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/device-management/output-streams/event-types/events)). +Here is an example of an event arriving on Ubidots. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/data-management/output-streams/event-types/events)). ``` POST {your-uri-path} HTTP/1.1 diff --git a/docs/device-management/2-output-streams/7-ubidots/_category_.yml b/docs/data-management/2-output-streams/7-ubidots/_category_.yml similarity index 100% rename from docs/device-management/2-output-streams/7-ubidots/_category_.yml rename to docs/data-management/2-output-streams/7-ubidots/_category_.yml diff --git a/docs/device-management/2-output-streams/8-influx/README.md b/docs/data-management/2-output-streams/8-influx/README.md similarity index 99% rename from docs/device-management/2-output-streams/8-influx/README.md rename to docs/data-management/2-output-streams/8-influx/README.md index 380ca340..3fd64275 100644 --- a/docs/device-management/2-output-streams/8-influx/README.md +++ b/docs/data-management/2-output-streams/8-influx/README.md @@ -1,7 +1,7 @@ --- id: overview title: InfluxDB Overview -slug: /device-management/output-streams/influxdb +slug: /data-management/output-streams/influxdb --- [InfluxDB Cloud](https://www.influxdata.com/products/influxdb-cloud/) is a diff --git a/docs/device-management/2-output-streams/8-influx/_category_.yml b/docs/data-management/2-output-streams/8-influx/_category_.yml similarity index 100% rename from docs/device-management/2-output-streams/8-influx/_category_.yml rename to docs/data-management/2-output-streams/8-influx/_category_.yml diff --git a/docs/device-management/2-output-streams/8-influx/assets/2023-07-20_15-37.png b/docs/data-management/2-output-streams/8-influx/assets/2023-07-20_15-37.png similarity index 100% rename from docs/device-management/2-output-streams/8-influx/assets/2023-07-20_15-37.png rename to docs/data-management/2-output-streams/8-influx/assets/2023-07-20_15-37.png diff --git a/docs/device-management/2-output-streams/8-influx/assets/buckets.png b/docs/data-management/2-output-streams/8-influx/assets/buckets.png similarity index 100% rename from docs/device-management/2-output-streams/8-influx/assets/buckets.png rename to docs/data-management/2-output-streams/8-influx/assets/buckets.png diff --git a/docs/device-management/2-output-streams/8-influx/assets/cluster-url.png b/docs/data-management/2-output-streams/8-influx/assets/cluster-url.png similarity index 100% rename from docs/device-management/2-output-streams/8-influx/assets/cluster-url.png rename to docs/data-management/2-output-streams/8-influx/assets/cluster-url.png diff --git a/docs/device-management/2-output-streams/8-influx/assets/create-outputstream-form.png b/docs/data-management/2-output-streams/8-influx/assets/create-outputstream-form.png similarity index 100% rename from docs/device-management/2-output-streams/8-influx/assets/create-outputstream-form.png rename to docs/data-management/2-output-streams/8-influx/assets/create-outputstream-form.png diff --git a/docs/device-management/2-output-streams/8-influx/assets/generate-token-button.png b/docs/data-management/2-output-streams/8-influx/assets/generate-token-button.png similarity index 100% rename from docs/device-management/2-output-streams/8-influx/assets/generate-token-button.png rename to docs/data-management/2-output-streams/8-influx/assets/generate-token-button.png diff --git a/docs/device-management/2-output-streams/8-influx/assets/generate-token.png b/docs/data-management/2-output-streams/8-influx/assets/generate-token.png similarity index 100% rename from docs/device-management/2-output-streams/8-influx/assets/generate-token.png rename to docs/data-management/2-output-streams/8-influx/assets/generate-token.png diff --git a/docs/device-management/2-output-streams/8-influx/assets/load-data-menu.png b/docs/data-management/2-output-streams/8-influx/assets/load-data-menu.png similarity index 100% rename from docs/device-management/2-output-streams/8-influx/assets/load-data-menu.png rename to docs/data-management/2-output-streams/8-influx/assets/load-data-menu.png diff --git a/docs/device-management/2-output-streams/8-influx/assets/org-settings-menu.png b/docs/data-management/2-output-streams/8-influx/assets/org-settings-menu.png similarity index 100% rename from docs/device-management/2-output-streams/8-influx/assets/org-settings-menu.png rename to docs/data-management/2-output-streams/8-influx/assets/org-settings-menu.png diff --git a/docs/device-management/2-output-streams/8-influx/assets/select-outputstream.png b/docs/data-management/2-output-streams/8-influx/assets/select-outputstream.png similarity index 100% rename from docs/device-management/2-output-streams/8-influx/assets/select-outputstream.png rename to docs/data-management/2-output-streams/8-influx/assets/select-outputstream.png diff --git a/docs/device-management/2-output-streams/8-influx/assets/token-create-form.png b/docs/data-management/2-output-streams/8-influx/assets/token-create-form.png similarity index 100% rename from docs/device-management/2-output-streams/8-influx/assets/token-create-form.png rename to docs/data-management/2-output-streams/8-influx/assets/token-create-form.png diff --git a/docs/device-management/2-output-streams/9-event-types/2-events.mdx b/docs/data-management/2-output-streams/9-event-types/2-events.mdx similarity index 100% rename from docs/device-management/2-output-streams/9-event-types/2-events.mdx rename to docs/data-management/2-output-streams/9-event-types/2-events.mdx diff --git a/docs/device-management/2-output-streams/9-event-types/README.md b/docs/data-management/2-output-streams/9-event-types/README.md similarity index 88% rename from docs/device-management/2-output-streams/9-event-types/README.md rename to docs/data-management/2-output-streams/9-event-types/README.md index 5cb72498..a426cb73 100644 --- a/docs/device-management/2-output-streams/9-event-types/README.md +++ b/docs/data-management/2-output-streams/9-event-types/README.md @@ -1,7 +1,7 @@ --- id: overview title: Event Types Overview -slug: /device-management/output-streams/event-types +slug: /data-management/output-streams/event-types --- The Golioth platform uses Cloud Events to communicate between services internally. With the Output Stream feature, we are making some of those events available for users to consume for use in their own applications. diff --git a/docs/device-management/2-output-streams/9-event-types/_category_.yml b/docs/data-management/2-output-streams/9-event-types/_category_.yml similarity index 100% rename from docs/device-management/2-output-streams/9-event-types/_category_.yml rename to docs/data-management/2-output-streams/9-event-types/_category_.yml diff --git a/docs/device-management/2-output-streams/README.md b/docs/data-management/2-output-streams/README.md similarity index 82% rename from docs/device-management/2-output-streams/README.md rename to docs/data-management/2-output-streams/README.md index 377e852c..41c4e9c7 100644 --- a/docs/device-management/2-output-streams/README.md +++ b/docs/data-management/2-output-streams/README.md @@ -1,7 +1,7 @@ --- id: overview title: Output Streams Overview -slug: /device-management/output-streams +slug: /data-management/output-streams --- Output Streams are a feature of the Golioth platform that allows users to integrate their data seamlessly with a number of external services. diff --git a/docs/device-management/2-output-streams/_category_.yml b/docs/data-management/2-output-streams/_category_.yml similarity index 100% rename from docs/device-management/2-output-streams/_category_.yml rename to docs/data-management/2-output-streams/_category_.yml diff --git a/docs/device-management/2-output-streams/messages.json b/docs/data-management/2-output-streams/messages.json similarity index 100% rename from docs/device-management/2-output-streams/messages.json rename to docs/data-management/2-output-streams/messages.json diff --git a/docs/device-management/assets/output-streams_azure-event-hub-connect.png b/docs/data-management/assets/output-streams_azure-event-hub-connect.png similarity index 100% rename from docs/device-management/assets/output-streams_azure-event-hub-connect.png rename to docs/data-management/assets/output-streams_azure-event-hub-connect.png diff --git a/docs/device-management/assets/output-streams_azure-event-hub-send-policy.png b/docs/data-management/assets/output-streams_azure-event-hub-send-policy.png similarity index 100% rename from docs/device-management/assets/output-streams_azure-event-hub-send-policy.png rename to docs/data-management/assets/output-streams_azure-event-hub-send-policy.png diff --git a/docs/device-management/assets/output-streams_azure-event-hub-shared-access.png b/docs/data-management/assets/output-streams_azure-event-hub-shared-access.png similarity index 100% rename from docs/device-management/assets/output-streams_azure-event-hub-shared-access.png rename to docs/data-management/assets/output-streams_azure-event-hub-shared-access.png From dd5d2711f067f4aca8e57de2f65934336d709a64 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Tue, 21 Nov 2023 15:58:42 -0600 Subject: [PATCH 07/88] remove Concepts Concepts section has been unrendered and unused for quite some time. Much of the information is out-of-date, and there is no reason to continue tracking it as we reorganize the Docs. Signed-off-by: Mike Szczys --- docs/concepts/1-home.md | 14 ------- docs/concepts/2-fundamentals.md | 8 ---- docs/concepts/3-device_services.md | 59 ------------------------------ docs/concepts/4-device_sdks.md | 25 ------------- docs/concepts/5-cli.md | 12 ------ docs/concepts/6-console.md | 14 ------- docs/concepts/7-lightdb.md | 18 --------- 7 files changed, 150 deletions(-) delete mode 100644 docs/concepts/1-home.md delete mode 100644 docs/concepts/2-fundamentals.md delete mode 100644 docs/concepts/3-device_services.md delete mode 100644 docs/concepts/4-device_sdks.md delete mode 100644 docs/concepts/5-cli.md delete mode 100644 docs/concepts/6-console.md delete mode 100644 docs/concepts/7-lightdb.md diff --git a/docs/concepts/1-home.md b/docs/concepts/1-home.md deleted file mode 100644 index 2916cad0..00000000 --- a/docs/concepts/1-home.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -id: home -title: Golioth Concepts -slug: /concepts ---- - -## Overview - -The 'Concepts' section of the docs will describe the high level background and behavior of Golioth features. The links in the top level navigation (when full screen) will be implementation details for many of these functions. If those links are the "practice", think of the 'Concepts' section as the "theory". - -## Feedback - -See something missing here? Contact [devrel@goloith.io](mailto:devrel@golioth.io) - diff --git a/docs/concepts/2-fundamentals.md b/docs/concepts/2-fundamentals.md deleted file mode 100644 index 9b326dd7..00000000 --- a/docs/concepts/2-fundamentals.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -id: fundamentals -title: Fundamentals ---- - -## Terminology - -* **Internet of Things (or 'IoT')** - A broad classification of devices connected together, normally through the internet (a series of tubes). diff --git a/docs/concepts/3-device_services.md b/docs/concepts/3-device_services.md deleted file mode 100644 index c62ce179..00000000 --- a/docs/concepts/3-device_services.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: device-services -title: Device Services ---- - -## Overview - -This is the Device Services page. The details around individual device services Goioth offers are in the [Platform](/device-management/services/) section of the docs. - -## Terminology - -Here are some of the terms will we be using in Device Services section of the documentation: - -* **Device Service** - -* **Cloud** - - -## Introduction - -Golioth Device Services are available over our [Device Interfaces](#), and are wrapped for easy integration into your device by Golioth libraries and the Golioth SDKs. - -Device Services are a set of functionality commonly needed for building production-ready IoT devices, their management, and operations in the field. - -You can pick and choose with Device Services you want to use - as many and as few as you want. Our SDKs, libraries, and the related services are all modular. - -## Device Interfaces -All of our Device Interfaces are wrapped by easy to use SDK, so you don't need to implement them from scratch. If you want to know what is under the hood, we currently support two secure interfaces: CoAP and MQTT. - -### CoAP -For environments with constrained bandwidth or metered traffic, we provide a data-efficient CoAP interface, - -All connections require client authentication and use DTLS v1.2. - -### MQTT -MQTT interface is intended for environments with reliable network layers, where TCP stack and its overhead can be accommodated. These are typically high bandwidth unmetered networks, such as WiFi, Bluetooth, or Ethernet. - -All connections require client authentication and use TLS v1.3. - -## Firmware Updates -Do you need a streamlined, scalable way to update firmware of a large fleet of embedded devices? Secure firmware updates are a core device service. We support updates over both IP and non-IP networks. - -## Remote Procedure Call -Are you looking for a reliable, scalable way to tell devices to perform an action? Open or close a valve? Blink an LED? Look no further. Our Remote Procedure Call service has everything you need to perform remote actions at scale, and audit the results - successful or unsuccessful. - -## LightDB State -The device state database serves as the “device twin” of your device. All the state of your device can be captured and synchronized with the cloud. You can query devices based on their current dynamic state, and apply actions based on the queries: Call remote procedure (RPC), change configuration (in bulk), turn features on or off, or perform (bulk) firmware updates. - -## LightDB -Golioth features an inbuilt high-performance time-series database - LightDB. It can be used out-of-the-box with numerous tools such as Grafana. It can be queried directly from our web console, too. - -## Remote Logging -Whenever you need to find a root cause of a problem in your IoT deployment, Golioth logs are going to simplify and accelerate the process. During implementation, the service will provide a framework to build a robust logging functionality, and in production it will collect information at scale with all the meta-data you will need when resolving issues. - -## Remote Monitoring -Apart from telemetry, your IoT deployment can benefit from additional operations data about your devices in the field. These can range from resource usage (battery level, battery usage, battery recharge cycles, storage, read / write cycle count, component temperature) to application-specific operations, so you can decouple them from application-level telemetry. - -## Security and Key Management -Have you been researching pre-shared keys, symmetric and asymmetric cryptography, certificates and private key infrastructure? Getting IoT security right is a challenge - especially at scale. We have collected decades of experience with cryptography in resource constrained environments, and will guide you towards an ideal solution for your use case and the constrains of your specific application and device. - -## Learn More diff --git a/docs/concepts/4-device_sdks.md b/docs/concepts/4-device_sdks.md deleted file mode 100644 index ef0def60..00000000 --- a/docs/concepts/4-device_sdks.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -id: device-sdks -title: Device SDKs ---- - -## Overview - -This is the Device SDKs page. The details around individual device services Goioth offers are in the [Platform](/device-management/services/) section of the docs. - -## Terminology - -Here are some of the terms will we be using in Device Services section of the documentation: - -* **Device SDK** - A "Software Development Kit" or "SDK" is a range of software drivers and examples offered to a user to quickly start building. An example Device SDK is the Golioth offering, built on top of the Zephyr SDK. -* **Firmware** - Code that is compiled for a particular piece of hardware and loaded onto said hardware -* **Hardware** - A piece of electronics, in this context with a programmable element like a microcontroller - -## SDKs -Do you want to use Golioth with your new product? Start with our SDK! -For selected real-time operating systems (currently only Zephyr OS), we provide a pre-integrated higher level abstraction of our interfaces in the form of an SDK. - -## Libraries -Do you have an existing product you want to use with Golioth? Or do you want a more granular control over software stack / footprint / resources? Our plug-and-play libraries are the fastest option. You can choose from the CoAP or MQTT flavors. Both are available in the C programming language, with community supported alternatives for other languages. - -## Learn More diff --git a/docs/concepts/5-cli.md b/docs/concepts/5-cli.md deleted file mode 100644 index 9cd98ef0..00000000 --- a/docs/concepts/5-cli.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -id: cli -title: Command Line Interface (CLI) ---- - -## Overview - -All Golioth functions can happen over the Command Line Interface (or CLI). We believe this allows our users to script, tests, and--most importantly-- *scale* their applications. - -## Terminology - -## Learn More \ No newline at end of file diff --git a/docs/concepts/6-console.md b/docs/concepts/6-console.md deleted file mode 100644 index fe0de63b..00000000 --- a/docs/concepts/6-console.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -id: console -title: Console ---- - -## Overview - -This is the Console page - -## Terminology - -* **Console** - A web-based graphical user interface to many of the features available on the Command Line Interface (CLI). Accessible at [console.golioth.io](https://console.golioth.io) - -## Learn More \ No newline at end of file diff --git a/docs/concepts/7-lightdb.md b/docs/concepts/7-lightdb.md deleted file mode 100644 index a30b4742..00000000 --- a/docs/concepts/7-lightdb.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -id: lightdb -title: LightDB ---- - -## Overview - -## Terminology - -## Learn More - -* Firmware LightDB docs - * Samples using LightDB -* Cloud LightDB docs - * How to access LightDB from the REST API - * How to push updates to device configurations using LightDB -* - From 017312c3f5518ba0f0ccadfd1764b0cfac759af2 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Tue, 21 Nov 2023 15:33:11 -0600 Subject: [PATCH 08/88] reorg: Move Logging, OTA, and Settings up a level Move the Logging, OTA, and Settings sections so the are immediately under Device Management. Signed-off-by: Mike Szczys --- .../{1-services => }/3-logging/2-searching-logs.md | 0 .../{1-services => }/3-logging/3-sending-logs.md | 0 .../{1-services => }/3-logging/README.md | 2 +- .../{1-services => }/3-logging/_category_.yml | 0 .../{1-services => }/5-ota/2-uploading-artifacts.md | 0 .../5-ota/3-release-firmware-update.md | 0 .../{1-services => }/5-ota/README.md | 2 +- .../{1-services => }/5-ota/_category_.yml | 0 .../{1-services => }/5-ota/assets/artifact-list.png | Bin .../{1-services => }/5-ota/assets/release-list.png | Bin .../5-ota/assets/release-no-tags.png | Bin .../6-settings/1-settings-structure.md | 0 .../6-settings/2-console-settings.md | 0 .../{1-services => }/6-settings/README.md | 2 +- .../{1-services => }/6-settings/_category_.yml | 0 .../6-settings/assets/blueprint-listing.png | Bin .../6-settings/assets/create-setting-modal.png | Bin .../6-settings/assets/device-settings-main-page.png | Bin .../6-settings/assets/device-settings-tab.png | Bin .../assets/listing-blueprint-level-settings.png | Bin .../assets/listing-device-level-settings.png | Bin .../listing-overrided-rpm-setting-dvc-lvl.png | Bin .../assets/listing-project-level-settings.png | Bin .../6-settings/assets/overrides-hierarchy.png | Bin .../6-settings/assets/sync-status.png | Bin docs/reference/2-protocols/1-coap/5-logging.md | 4 ++-- docs/reference/2-protocols/1-coap/6-ota.md | 4 ++-- docs/reference/4-websocket/3-Endpoints/3-logging.md | 2 +- docusaurus.config.js | 2 +- 29 files changed, 9 insertions(+), 9 deletions(-) rename docs/device-management/{1-services => }/3-logging/2-searching-logs.md (100%) rename docs/device-management/{1-services => }/3-logging/3-sending-logs.md (100%) rename docs/device-management/{1-services => }/3-logging/README.md (97%) rename docs/device-management/{1-services => }/3-logging/_category_.yml (100%) rename docs/device-management/{1-services => }/5-ota/2-uploading-artifacts.md (100%) rename docs/device-management/{1-services => }/5-ota/3-release-firmware-update.md (100%) rename docs/device-management/{1-services => }/5-ota/README.md (98%) rename docs/device-management/{1-services => }/5-ota/_category_.yml (100%) rename docs/device-management/{1-services => }/5-ota/assets/artifact-list.png (100%) rename docs/device-management/{1-services => }/5-ota/assets/release-list.png (100%) rename docs/device-management/{1-services => }/5-ota/assets/release-no-tags.png (100%) rename docs/device-management/{1-services => }/6-settings/1-settings-structure.md (100%) rename docs/device-management/{1-services => }/6-settings/2-console-settings.md (100%) rename docs/device-management/{1-services => }/6-settings/README.md (98%) rename docs/device-management/{1-services => }/6-settings/_category_.yml (100%) rename docs/device-management/{1-services => }/6-settings/assets/blueprint-listing.png (100%) rename docs/device-management/{1-services => }/6-settings/assets/create-setting-modal.png (100%) rename docs/device-management/{1-services => }/6-settings/assets/device-settings-main-page.png (100%) rename docs/device-management/{1-services => }/6-settings/assets/device-settings-tab.png (100%) rename docs/device-management/{1-services => }/6-settings/assets/listing-blueprint-level-settings.png (100%) rename docs/device-management/{1-services => }/6-settings/assets/listing-device-level-settings.png (100%) rename docs/device-management/{1-services => }/6-settings/assets/listing-overrided-rpm-setting-dvc-lvl.png (100%) rename docs/device-management/{1-services => }/6-settings/assets/listing-project-level-settings.png (100%) rename docs/device-management/{1-services => }/6-settings/assets/overrides-hierarchy.png (100%) rename docs/device-management/{1-services => }/6-settings/assets/sync-status.png (100%) diff --git a/docs/device-management/1-services/3-logging/2-searching-logs.md b/docs/device-management/3-logging/2-searching-logs.md similarity index 100% rename from docs/device-management/1-services/3-logging/2-searching-logs.md rename to docs/device-management/3-logging/2-searching-logs.md diff --git a/docs/device-management/1-services/3-logging/3-sending-logs.md b/docs/device-management/3-logging/3-sending-logs.md similarity index 100% rename from docs/device-management/1-services/3-logging/3-sending-logs.md rename to docs/device-management/3-logging/3-sending-logs.md diff --git a/docs/device-management/1-services/3-logging/README.md b/docs/device-management/3-logging/README.md similarity index 97% rename from docs/device-management/1-services/3-logging/README.md rename to docs/device-management/3-logging/README.md index 23010178..4ff5ec0d 100644 --- a/docs/device-management/1-services/3-logging/README.md +++ b/docs/device-management/3-logging/README.md @@ -1,7 +1,7 @@ --- id: overview title: Logging Overview -slug: /device-management/services/logging +slug: /device-management/logging --- ## What is Logging diff --git a/docs/device-management/1-services/3-logging/_category_.yml b/docs/device-management/3-logging/_category_.yml similarity index 100% rename from docs/device-management/1-services/3-logging/_category_.yml rename to docs/device-management/3-logging/_category_.yml diff --git a/docs/device-management/1-services/5-ota/2-uploading-artifacts.md b/docs/device-management/5-ota/2-uploading-artifacts.md similarity index 100% rename from docs/device-management/1-services/5-ota/2-uploading-artifacts.md rename to docs/device-management/5-ota/2-uploading-artifacts.md diff --git a/docs/device-management/1-services/5-ota/3-release-firmware-update.md b/docs/device-management/5-ota/3-release-firmware-update.md similarity index 100% rename from docs/device-management/1-services/5-ota/3-release-firmware-update.md rename to docs/device-management/5-ota/3-release-firmware-update.md diff --git a/docs/device-management/1-services/5-ota/README.md b/docs/device-management/5-ota/README.md similarity index 98% rename from docs/device-management/1-services/5-ota/README.md rename to docs/device-management/5-ota/README.md index e9aa93e1..c2c8a1a0 100644 --- a/docs/device-management/1-services/5-ota/README.md +++ b/docs/device-management/5-ota/README.md @@ -1,7 +1,7 @@ --- id: overview title: Over-the-Air (OTA) Updates Overview -slug: /device-management/services/ota +slug: /device-management/ota --- Golioth Device Firmware Update (DFU) enables quick, secure deployment of firmware packages to IoT devices throughout the world. The Golioth Web Console enables easy management of firmware releases, including multi-part binary bundles, enabling updates for devices as diverse as smart speakers, digital signage, machine learning enabled sensor systems, multiple processor embedded devices, and more. diff --git a/docs/device-management/1-services/5-ota/_category_.yml b/docs/device-management/5-ota/_category_.yml similarity index 100% rename from docs/device-management/1-services/5-ota/_category_.yml rename to docs/device-management/5-ota/_category_.yml diff --git a/docs/device-management/1-services/5-ota/assets/artifact-list.png b/docs/device-management/5-ota/assets/artifact-list.png similarity index 100% rename from docs/device-management/1-services/5-ota/assets/artifact-list.png rename to docs/device-management/5-ota/assets/artifact-list.png diff --git a/docs/device-management/1-services/5-ota/assets/release-list.png b/docs/device-management/5-ota/assets/release-list.png similarity index 100% rename from docs/device-management/1-services/5-ota/assets/release-list.png rename to docs/device-management/5-ota/assets/release-list.png diff --git a/docs/device-management/1-services/5-ota/assets/release-no-tags.png b/docs/device-management/5-ota/assets/release-no-tags.png similarity index 100% rename from docs/device-management/1-services/5-ota/assets/release-no-tags.png rename to docs/device-management/5-ota/assets/release-no-tags.png diff --git a/docs/device-management/1-services/6-settings/1-settings-structure.md b/docs/device-management/6-settings/1-settings-structure.md similarity index 100% rename from docs/device-management/1-services/6-settings/1-settings-structure.md rename to docs/device-management/6-settings/1-settings-structure.md diff --git a/docs/device-management/1-services/6-settings/2-console-settings.md b/docs/device-management/6-settings/2-console-settings.md similarity index 100% rename from docs/device-management/1-services/6-settings/2-console-settings.md rename to docs/device-management/6-settings/2-console-settings.md diff --git a/docs/device-management/1-services/6-settings/README.md b/docs/device-management/6-settings/README.md similarity index 98% rename from docs/device-management/1-services/6-settings/README.md rename to docs/device-management/6-settings/README.md index 415e99d3..73940286 100644 --- a/docs/device-management/1-services/6-settings/README.md +++ b/docs/device-management/6-settings/README.md @@ -1,7 +1,7 @@ --- id: overview title: Settings Overview -slug: /device-management/services/settings +slug: /device-management/settings --- ## What is the Settings Service? diff --git a/docs/device-management/1-services/6-settings/_category_.yml b/docs/device-management/6-settings/_category_.yml similarity index 100% rename from docs/device-management/1-services/6-settings/_category_.yml rename to docs/device-management/6-settings/_category_.yml diff --git a/docs/device-management/1-services/6-settings/assets/blueprint-listing.png b/docs/device-management/6-settings/assets/blueprint-listing.png similarity index 100% rename from docs/device-management/1-services/6-settings/assets/blueprint-listing.png rename to docs/device-management/6-settings/assets/blueprint-listing.png diff --git a/docs/device-management/1-services/6-settings/assets/create-setting-modal.png b/docs/device-management/6-settings/assets/create-setting-modal.png similarity index 100% rename from docs/device-management/1-services/6-settings/assets/create-setting-modal.png rename to docs/device-management/6-settings/assets/create-setting-modal.png diff --git a/docs/device-management/1-services/6-settings/assets/device-settings-main-page.png b/docs/device-management/6-settings/assets/device-settings-main-page.png similarity index 100% rename from docs/device-management/1-services/6-settings/assets/device-settings-main-page.png rename to docs/device-management/6-settings/assets/device-settings-main-page.png diff --git a/docs/device-management/1-services/6-settings/assets/device-settings-tab.png b/docs/device-management/6-settings/assets/device-settings-tab.png similarity index 100% rename from docs/device-management/1-services/6-settings/assets/device-settings-tab.png rename to docs/device-management/6-settings/assets/device-settings-tab.png diff --git a/docs/device-management/1-services/6-settings/assets/listing-blueprint-level-settings.png b/docs/device-management/6-settings/assets/listing-blueprint-level-settings.png similarity index 100% rename from docs/device-management/1-services/6-settings/assets/listing-blueprint-level-settings.png rename to docs/device-management/6-settings/assets/listing-blueprint-level-settings.png diff --git a/docs/device-management/1-services/6-settings/assets/listing-device-level-settings.png b/docs/device-management/6-settings/assets/listing-device-level-settings.png similarity index 100% rename from docs/device-management/1-services/6-settings/assets/listing-device-level-settings.png rename to docs/device-management/6-settings/assets/listing-device-level-settings.png diff --git a/docs/device-management/1-services/6-settings/assets/listing-overrided-rpm-setting-dvc-lvl.png b/docs/device-management/6-settings/assets/listing-overrided-rpm-setting-dvc-lvl.png similarity index 100% rename from docs/device-management/1-services/6-settings/assets/listing-overrided-rpm-setting-dvc-lvl.png rename to docs/device-management/6-settings/assets/listing-overrided-rpm-setting-dvc-lvl.png diff --git a/docs/device-management/1-services/6-settings/assets/listing-project-level-settings.png b/docs/device-management/6-settings/assets/listing-project-level-settings.png similarity index 100% rename from docs/device-management/1-services/6-settings/assets/listing-project-level-settings.png rename to docs/device-management/6-settings/assets/listing-project-level-settings.png diff --git a/docs/device-management/1-services/6-settings/assets/overrides-hierarchy.png b/docs/device-management/6-settings/assets/overrides-hierarchy.png similarity index 100% rename from docs/device-management/1-services/6-settings/assets/overrides-hierarchy.png rename to docs/device-management/6-settings/assets/overrides-hierarchy.png diff --git a/docs/device-management/1-services/6-settings/assets/sync-status.png b/docs/device-management/6-settings/assets/sync-status.png similarity index 100% rename from docs/device-management/1-services/6-settings/assets/sync-status.png rename to docs/device-management/6-settings/assets/sync-status.png diff --git a/docs/reference/2-protocols/1-coap/5-logging.md b/docs/reference/2-protocols/1-coap/5-logging.md index 259fa588..01a2470d 100644 --- a/docs/reference/2-protocols/1-coap/5-logging.md +++ b/docs/reference/2-protocols/1-coap/5-logging.md @@ -3,11 +3,11 @@ id: logging title: Logging --- -[Logging Device Service](/device-management/services/logging) definitions over CoAP. +[Logging Device Service](/device-management/logging) definitions over CoAP. How to use guides: -- [Sending logs](/device-management/services/logging/sending-logs) +- [Sending logs](/device-management/logging/sending-logs) ### Interface diff --git a/docs/reference/2-protocols/1-coap/6-ota.md b/docs/reference/2-protocols/1-coap/6-ota.md index baab5f0f..2fae49fa 100644 --- a/docs/reference/2-protocols/1-coap/6-ota.md +++ b/docs/reference/2-protocols/1-coap/6-ota.md @@ -3,11 +3,11 @@ id: ota title: Over The Air (OTA) Updates --- -[Over The Air (OTA) Updates Service](/device-management/services/ota) definitions over CoAP. +[Over The Air (OTA) Updates Service](/device-management/ota) definitions over CoAP. How to use guides: -- [OTA Overview](/device-management/services/ota) +- [OTA Overview](/device-management/ota) ### Interface diff --git a/docs/reference/4-websocket/3-Endpoints/3-logging.md b/docs/reference/4-websocket/3-Endpoints/3-logging.md index 8d63c75c..a5948de4 100644 --- a/docs/reference/4-websocket/3-Endpoints/3-logging.md +++ b/docs/reference/4-websocket/3-Endpoints/3-logging.md @@ -3,7 +3,7 @@ id: logging title: Logging --- -[Logging Device Service](/device-management/services/logging) definitions. +[Logging Device Service](/device-management/logging) definitions. Real-time endpoint to listen to a device's data stream as it arrives at the Golioth Cloud. diff --git a/docusaurus.config.js b/docusaurus.config.js index 895c67f0..72084dd4 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -74,7 +74,7 @@ module.exports = { }, { label: "Over the Air Updates", - to: "/device-management/services/ota", + to: "/device-management/ota", }, ], }, From f40c7199e40d9a7e0d6912003252e182169e1f63 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Tue, 21 Nov 2023 15:47:59 -0600 Subject: [PATCH 09/88] reorg: move LightDB to data-management Move Light State and Stream to the data management section. Signed-off-by: Mike Szczys --- .../1-stored-data/1-lightdb-state}/2-structure-data.md | 0 .../1-lightdb-state}/3-read-write-data.md | 0 .../1-lightdb-state}/4-simulating-devices.md | 0 .../1-stored-data/1-lightdb-state}/README.md | 4 ++-- .../1-stored-data/1-lightdb-state}/_category_.yml | 4 ++-- .../1-stored-data}/4-lightdb-stream/2-sending-data.md | 0 .../1-stored-data}/4-lightdb-stream/3-querying-data.md | 0 .../1-stored-data}/4-lightdb-stream/README.md | 2 +- .../1-stored-data}/4-lightdb-stream/_category_.yml | 0 docs/data-management/1-stored-data/README.md | 10 ++++++++++ docs/data-management/1-stored-data/_category_.yml | 4 ++++ .../1-services/2-lightdb/_category_.yml | 4 ---- docs/device-management/1-services/README.md | 7 ------- .../2-zephyr-quickstart/3-simulating-devices-coap.md | 2 +- .../zephyr-device-sdk/light-db-stream/README.md | 2 +- docs/reference/2-protocols/1-coap/3-lightdb.md | 4 ++-- docs/reference/2-protocols/1-coap/4-lightdb-stream.md | 4 ++-- docs/reference/2-protocols/1-coap/7-limits.md | 8 ++++---- docs/reference/4-websocket/3-Endpoints/1-lightdb.md | 2 +- .../4-websocket/3-Endpoints/2-lightdb-stream.md | 2 +- 20 files changed, 31 insertions(+), 28 deletions(-) rename docs/{device-management/1-services/2-lightdb => data-management/1-stored-data/1-lightdb-state}/2-structure-data.md (100%) rename docs/{device-management/1-services/2-lightdb => data-management/1-stored-data/1-lightdb-state}/3-read-write-data.md (100%) rename docs/{device-management/1-services/2-lightdb => data-management/1-stored-data/1-lightdb-state}/4-simulating-devices.md (100%) rename docs/{device-management/1-services/2-lightdb => data-management/1-stored-data/1-lightdb-state}/README.md (96%) rename docs/{device-management/1-services => data-management/1-stored-data/1-lightdb-state}/_category_.yml (55%) rename docs/{device-management/1-services => data-management/1-stored-data}/4-lightdb-stream/2-sending-data.md (100%) rename docs/{device-management/1-services => data-management/1-stored-data}/4-lightdb-stream/3-querying-data.md (100%) rename docs/{device-management/1-services => data-management/1-stored-data}/4-lightdb-stream/README.md (96%) rename docs/{device-management/1-services => data-management/1-stored-data}/4-lightdb-stream/_category_.yml (100%) create mode 100644 docs/data-management/1-stored-data/README.md create mode 100644 docs/data-management/1-stored-data/_category_.yml delete mode 100644 docs/device-management/1-services/2-lightdb/_category_.yml delete mode 100644 docs/device-management/1-services/README.md diff --git a/docs/device-management/1-services/2-lightdb/2-structure-data.md b/docs/data-management/1-stored-data/1-lightdb-state/2-structure-data.md similarity index 100% rename from docs/device-management/1-services/2-lightdb/2-structure-data.md rename to docs/data-management/1-stored-data/1-lightdb-state/2-structure-data.md diff --git a/docs/device-management/1-services/2-lightdb/3-read-write-data.md b/docs/data-management/1-stored-data/1-lightdb-state/3-read-write-data.md similarity index 100% rename from docs/device-management/1-services/2-lightdb/3-read-write-data.md rename to docs/data-management/1-stored-data/1-lightdb-state/3-read-write-data.md diff --git a/docs/device-management/1-services/2-lightdb/4-simulating-devices.md b/docs/data-management/1-stored-data/1-lightdb-state/4-simulating-devices.md similarity index 100% rename from docs/device-management/1-services/2-lightdb/4-simulating-devices.md rename to docs/data-management/1-stored-data/1-lightdb-state/4-simulating-devices.md diff --git a/docs/device-management/1-services/2-lightdb/README.md b/docs/data-management/1-stored-data/1-lightdb-state/README.md similarity index 96% rename from docs/device-management/1-services/2-lightdb/README.md rename to docs/data-management/1-stored-data/1-lightdb-state/README.md index 53275ec6..df241612 100644 --- a/docs/device-management/1-services/2-lightdb/README.md +++ b/docs/data-management/1-stored-data/1-lightdb-state/README.md @@ -1,7 +1,7 @@ --- id: overview -title: LightDB Overview -slug: /device-management/services/lightdb +title: LightDB State Overview +slug: /data-management/stored-data/lightdb-state --- ## What is LightDB? diff --git a/docs/device-management/1-services/_category_.yml b/docs/data-management/1-stored-data/1-lightdb-state/_category_.yml similarity index 55% rename from docs/device-management/1-services/_category_.yml rename to docs/data-management/1-stored-data/1-lightdb-state/_category_.yml index 827c33ac..de5a6bd0 100644 --- a/docs/device-management/1-services/_category_.yml +++ b/docs/data-management/1-stored-data/1-lightdb-state/_category_.yml @@ -1,4 +1,4 @@ -label: 'Services' +label: 'LightDB State' position: 2.5 # float position is supported collapsible: true # make the category collapsible -collapsed: false # keep the category open by default \ No newline at end of file +collapsed: true # keep the category open by default diff --git a/docs/device-management/1-services/4-lightdb-stream/2-sending-data.md b/docs/data-management/1-stored-data/4-lightdb-stream/2-sending-data.md similarity index 100% rename from docs/device-management/1-services/4-lightdb-stream/2-sending-data.md rename to docs/data-management/1-stored-data/4-lightdb-stream/2-sending-data.md diff --git a/docs/device-management/1-services/4-lightdb-stream/3-querying-data.md b/docs/data-management/1-stored-data/4-lightdb-stream/3-querying-data.md similarity index 100% rename from docs/device-management/1-services/4-lightdb-stream/3-querying-data.md rename to docs/data-management/1-stored-data/4-lightdb-stream/3-querying-data.md diff --git a/docs/device-management/1-services/4-lightdb-stream/README.md b/docs/data-management/1-stored-data/4-lightdb-stream/README.md similarity index 96% rename from docs/device-management/1-services/4-lightdb-stream/README.md rename to docs/data-management/1-stored-data/4-lightdb-stream/README.md index 3c8e77a5..7aad9296 100644 --- a/docs/device-management/1-services/4-lightdb-stream/README.md +++ b/docs/data-management/1-stored-data/4-lightdb-stream/README.md @@ -1,7 +1,7 @@ --- id: overview title: LightDB Stream Overview -slug: /device-management/services/lightdb-stream +slug: /data-management/stored-data/lightdb-stream --- ## What is LightDB Stream? diff --git a/docs/device-management/1-services/4-lightdb-stream/_category_.yml b/docs/data-management/1-stored-data/4-lightdb-stream/_category_.yml similarity index 100% rename from docs/device-management/1-services/4-lightdb-stream/_category_.yml rename to docs/data-management/1-stored-data/4-lightdb-stream/_category_.yml diff --git a/docs/data-management/1-stored-data/README.md b/docs/data-management/1-stored-data/README.md new file mode 100644 index 00000000..447da97c --- /dev/null +++ b/docs/data-management/1-stored-data/README.md @@ -0,0 +1,10 @@ +--- +id: overview +title: Data Storage on Golioth +slug: /data-management/stored-data +--- + +This is page describes two types of device data stored on Golioth: + +* **LightDB State:** Stateful data supporting bidirectional changes +* **LightDB Stream:** Time-Series data sent from device-to-cloud diff --git a/docs/data-management/1-stored-data/_category_.yml b/docs/data-management/1-stored-data/_category_.yml new file mode 100644 index 00000000..a460c59e --- /dev/null +++ b/docs/data-management/1-stored-data/_category_.yml @@ -0,0 +1,4 @@ +label: 'Stored Data' +position: 1 # float position is supported +collapsible: true # make the category collapsible +collapsed: false # keep the category open by default diff --git a/docs/device-management/1-services/2-lightdb/_category_.yml b/docs/device-management/1-services/2-lightdb/_category_.yml deleted file mode 100644 index cd21c3cd..00000000 --- a/docs/device-management/1-services/2-lightdb/_category_.yml +++ /dev/null @@ -1,4 +0,0 @@ -label: 'LightDB' -position: 2.5 # float position is supported -collapsible: true # make the category collapsible -collapsed: true # keep the category open by default \ No newline at end of file diff --git a/docs/device-management/1-services/README.md b/docs/device-management/1-services/README.md deleted file mode 100644 index 476217ad..00000000 --- a/docs/device-management/1-services/README.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -id: overview -title: Services Overview -slug: /device-management/services ---- - -Device Services are the features that Golioth delivers to connected embedded devices (such as a product based on the [ESP32](/firmware/hardware/esp32) or [nRF91](/firmware/hardware/nrf91)). Services, and the content of this section of the documentation, will revolve around implementing the service and more importantly, using tools like [goliothctl](/reference/command-line-tools/goliothctl/goliothctl/) and [coap](/reference/command-line-tools/coap/coap/) to test diff --git a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md index 581f52ab..fbde457a 100644 --- a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md +++ b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md @@ -119,4 +119,4 @@ testing. We recommend using `coap` when first working on LightDB data storage and retrieval. The interactive nature makes it easy to test your schema before moving to embedded devices. -Examples of using `coap` with LightDB are [found in the Cloud documentation](/device-management/services/lightdb/read-write-data). +Examples of using `coap` with LightDB are [found in the Cloud documentation](/data-management/stored-data/lightdb-state/read-write-data). diff --git a/docs/firmware/zephyr-device-sdk/light-db-stream/README.md b/docs/firmware/zephyr-device-sdk/light-db-stream/README.md index b037b42c..1be694e0 100644 --- a/docs/firmware/zephyr-device-sdk/light-db-stream/README.md +++ b/docs/firmware/zephyr-device-sdk/light-db-stream/README.md @@ -7,4 +7,4 @@ LightDB Stream is a persistent database service hosted by Golioth. The LightDB S ![Console](../assets/lightDB-stream-svg-a4.svg) -Checkout the [LightDB Stream](https://docs.golioth.io/device-management/services/lightdb-stream/) guide for a walkthrough of the sample demonstrating the firmware calls used to interact with the Golioth LightDB Stream service. +Checkout the [LightDB Stream](https://docs.golioth.io/data-management/lightdb-stream/) guide for a walkthrough of the sample demonstrating the firmware calls used to interact with the Golioth LightDB Stream service. diff --git a/docs/reference/2-protocols/1-coap/3-lightdb.md b/docs/reference/2-protocols/1-coap/3-lightdb.md index ad2c58de..bab76d08 100644 --- a/docs/reference/2-protocols/1-coap/3-lightdb.md +++ b/docs/reference/2-protocols/1-coap/3-lightdb.md @@ -3,11 +3,11 @@ id: lightdb title: LightDB --- -[LightDB Device Service](/device-management/services/lightdb) definitions over CoAP. +[LightDB Device Service](/data-management/stored-data/lightdb-state) definitions over CoAP. How to use guides: -- [Read Write Data](/device-management/services/lightdb/read-write-data) +- [Read Write Data](/data-management/stored-data/lightdb-state/read-write-data) ### Interface diff --git a/docs/reference/2-protocols/1-coap/4-lightdb-stream.md b/docs/reference/2-protocols/1-coap/4-lightdb-stream.md index 5ae55811..54ebac6e 100644 --- a/docs/reference/2-protocols/1-coap/4-lightdb-stream.md +++ b/docs/reference/2-protocols/1-coap/4-lightdb-stream.md @@ -3,11 +3,11 @@ id: lightdb-stream title: LightDB Stream --- -[LightDB Stream Device Service](/device-management/services/lightdb-stream) definitions over CoAP. +[LightDB Stream Device Service](/data-management/stored-data/lightdb-stream) definitions over CoAP. How to use guides: -- [Sending Data](/device-management/services/lightdb-stream/sending-data) +- [Sending Data](/data-management/stored-data/lightdb-stream/sending-data) ### Interface diff --git a/docs/reference/2-protocols/1-coap/7-limits.md b/docs/reference/2-protocols/1-coap/7-limits.md index 2f98efc7..360a9a8e 100644 --- a/docs/reference/2-protocols/1-coap/7-limits.md +++ b/docs/reference/2-protocols/1-coap/7-limits.md @@ -11,10 +11,10 @@ Golioth servers enforce the following limit on CoAP requests: When passing frequent readings from a single device to Golioth (greater than 1 Hz) we recommend sending in batches. As noted for the [LightDB Stream -service](/device-management/services/lightdb-stream/sending-data), your device can add -timestamps to data packets by using `t`, `ts`, or `time` as the key. The Golioth -LightDB Stream service will use the timestamp for the database entry instead of -the time received. +service](/data-management/stored-data/lightdb-stream/sending-data), your device +can add timestamps to data packets by using `t`, `ts`, or `time` as the key. The +Golioth LightDB Stream service will use the timestamp for the database entry +instead of the time received. ## Payload length diff --git a/docs/reference/4-websocket/3-Endpoints/1-lightdb.md b/docs/reference/4-websocket/3-Endpoints/1-lightdb.md index df11d4bf..6384b3c1 100644 --- a/docs/reference/4-websocket/3-Endpoints/1-lightdb.md +++ b/docs/reference/4-websocket/3-Endpoints/1-lightdb.md @@ -3,7 +3,7 @@ id: lightdb title: LightDB --- -[LightDB Device Service](/device-management/services/lightdb) definitions. +[LightDB Device Service](/data-management/stored-data/lightdb-state) definitions. Real-time endpoint to listen to any changes in a device state path. diff --git a/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md b/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md index 34697d59..4f048187 100644 --- a/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md +++ b/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md @@ -3,7 +3,7 @@ id: lightdb-stream title: LightDB Stream --- -[LightDB Stream Device Service](/device-management/services/lightdb-stream) definitions. +[LightDB Stream Device Service](/data-management/stored-data/lightdb-stream) definitions. Real-time endpoint to listen to a device's data stream as it arrives at the Golioth Cloud. From 9baf6caacb2cd255908db0e785f8d4ab8febaed4 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Sat, 25 Nov 2023 12:42:18 -0600 Subject: [PATCH 10/88] css: add Golioth brand colors and use them This defines the Golioth color palette in custom CSS, and uses those define colors to replace most of the color codes. There should be no substantive appearance change as our initial site branding was very close the official color palette. This does make the colors uniformed and much easier to work with in the future. There are a set of dark/er/est and light/er/est colors that should be reviewed in a future commit. Signed-off-by: Mike Szczys --- src/css/custom.css | 57 +++++++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index 52d635b8..0617aadd 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -8,7 +8,16 @@ /* You can override the default Infima variables here. */ :root { - --ifm-color-primary: #ff5760; + --golioth-color-lightning-yellow: #f8b918; + --golioth-color-mine-shaft: #232323; + --golioth-color-coral: #ff5760; + --golioth-color-cod-gray: #1a1a1a; + --golioth-color-charcoal: #353535; + --golioth-color-concrete: #f2f2f2; + --golioth-color-blac: #000000; + --golioth-color-white: #ffffff; + + --ifm-color-primary: var(--golioth-color-coral); --ifm-color-primary-dark: #d23c43; --ifm-color-primary-darker: #ae262d; --ifm-color-primary-darkest: #540c0f; @@ -16,14 +25,14 @@ --ifm-color-primary-lighter: #ffaeb2; --ifm-color-primary-lightest: #ffd1d3; --ifm-code-font-size: 95%; - --ifm-navbar-background-color: #212529; - --ifm-navbar-link-color: #fff; - --ifm-menu-color: #fff; - --ifm-menu-color-background-active: #2f3031; - --ifm-menu-color-background-hover: #2f3031; - --ifm-footer-color: #0d0f19; - --ifm-footer-title-color: #0d0f19; - --ifm-footer-link-color: #0d0f19; + --ifm-navbar-background-color: var(--golioth-color-mine-shaft); + --ifm-navbar-link-color: var(--golioth-color-white); + --ifm-menu-color: var(--golioth-color-white); + --ifm-menu-color-background-active: var(--golioth-color-charcoal); + --ifm-menu-color-background-hover: var(--golioth-color-charcoal); + --ifm-footer-color: var(--golioth-color-cod-gray); + --ifm-footer-title-color: var(--golioth-color-cod-gray); + --ifm-footer-link-color: var(--golioth-color-cod-gray); --ifm-font-family-base: "MaisonNeue"; --ifm-menu-link-sublist-icon-filter: invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%); @@ -35,7 +44,7 @@ } .hero { - background-color: #0d0f19; + background-color: var(--golioth-color-cod-gray); } .heroLogo { @@ -43,22 +52,22 @@ } .footer { - background: #1a1a1a; - --ifm-footer-color: #fff; - --ifm-footer-title-color: #fff; - --ifm-footer-link-color: #fff; + background: var(--golioth-color-cod-gray); + --ifm-footer-color: var(--golioth-color-white); + --ifm-footer-title-color: var(--golioth-color-white); + --ifm-footer-link-color: var(--golioth-color-white); --ifm-footer-link-hover-color: var(--ifm-color-primary); } .footer--dark { - --ifm-footer-color: #fff; - --ifm-footer-title-color: #fff; - --ifm-footer-link-color: #fff; + --ifm-footer-color: var(--golioth-color-white); + --ifm-footer-title-color: var(--golioth-color-white); + --ifm-footer-link-color: var(--golioth-color-white); } .menu { - color: #fff; - background-color: #242526; + color: var(--golioth-color-white); + background-color: var(--golioth-color-mine-shaft); margin-bottom: 0 !important; } @@ -99,17 +108,17 @@ button [class^="lightToggleIcon"]:not(:hover) { } html[data-theme="dark"] { - --ifm-color-primary: #ff5760; + --ifm-color-primary: var(--golioth-color-coral); --ifm-color-primary-dark: #d23c43; --ifm-color-primary-darker: #ae262d; --ifm-color-primary-darkest: #540c0f; --ifm-color-primary-light: #ff858b; --ifm-color-primary-lighter: #ffaeb2; --ifm-color-primary-lightest: #ffd1d3; - --ifm-background-color: #242526; - --ifm-footer-color: #0d0f19; - --ifm-footer-title-color: #0d0f19; - --ifm-footer-link-color: #0d0f19; + --ifm-background-color: var(--golioth-color-mine-shaft); + --ifm-footer-color: var(--golioth-color-cod-gray); + --ifm-footer-title-color: var(--golioth-color-cod-gray); + --ifm-footer-link-color: var(--golioth-color-cod-gray); } .image-flex-container { From 1770b023e2ab34ed2db35879707f26190a7bb90d Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Sat, 25 Nov 2023 12:55:05 -0600 Subject: [PATCH 11/88] css: add Akkurat font Use Akkurat font as part of Golioth branding. Signed-off-by: Mike Szczys --- src/css/custom.css | 6 +++--- static/fonts/AkkuratLLWeb-Regular.woff2 | Bin 0 -> 110007 bytes static/fonts/MaisonNeueWEB-Medium.woff2 | Bin 39115 -> 0 bytes 3 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 static/fonts/AkkuratLLWeb-Regular.woff2 delete mode 100644 static/fonts/MaisonNeueWEB-Medium.woff2 diff --git a/src/css/custom.css b/src/css/custom.css index 0617aadd..e3572bf3 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -33,14 +33,14 @@ --ifm-footer-color: var(--golioth-color-cod-gray); --ifm-footer-title-color: var(--golioth-color-cod-gray); --ifm-footer-link-color: var(--golioth-color-cod-gray); - --ifm-font-family-base: "MaisonNeue"; + --ifm-font-family-base: "Akkurat"; --ifm-menu-link-sublist-icon-filter: invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%); } @font-face { - font-family: "MaisonNeue"; - src: url("/fonts/MaisonNeueWEB-Medium.woff2"); + font-family: "Akkurat"; + src: url("/fonts/AkkuratLLWeb-Regular.woff2"); } .hero { diff --git a/static/fonts/AkkuratLLWeb-Regular.woff2 b/static/fonts/AkkuratLLWeb-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..75a13555e9d7a875dcb8f1d0fde21b7aec4ab676 GIT binary patch literal 110007 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%0D4ZD)n4J=b3GMJ(fo=r!9Nm-8&%mwK+mB7XXviP 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 Pnn$MKwxKYt>PE5vhJ3i3 literal 0 HcmV?d00001 diff --git a/static/fonts/MaisonNeueWEB-Medium.woff2 b/static/fonts/MaisonNeueWEB-Medium.woff2 deleted file mode 100644 index 04e161f6284e40cf0027f257811f62c125b5450f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39115 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 From eccaf22b169781685738d5928ffc9d812a6715b8 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Mon, 27 Nov 2023 13:56:42 -0600 Subject: [PATCH 12/88] landing-page: show platform support matrix Move platfrom support from firmware/hardware section to landing page. Signed-off-by: Mike Szczys --- docs/firmware/hardware/README.md | 33 ------------------------------ docs/getting-started/1-overview.md | 1 - docs/landing_page.md | 33 ++++++++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 34 deletions(-) diff --git a/docs/firmware/hardware/README.md b/docs/firmware/hardware/README.md index 9e13ab10..540e0ce3 100644 --- a/docs/firmware/hardware/README.md +++ b/docs/firmware/hardware/README.md @@ -9,39 +9,6 @@ The Hardware section includes a catalog of supported boards for the Golioth platform. Additionally, there are quickstart guides and recommended boards for common MCUs, such as the ESP32 and nRF91. -## Start Here - -Golioth offers two device SDKs that support a wide range of hardware. Here is -some guidance on what to use when setting up a development environment for your -hardware. - -### Platform Support - -| Vendor | SDK | Quickstart | Note | -| ---------- | -------------------- | ---------- | ---- | -| Espressif | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | [ESP32 ESP-IDF Quickstart](/firmware/hardware/esp32/espidf-quickstart/set-up-espidf) | Use for ESP32 MCUs | -| Espressif | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [ESP32 Zephyr Quickstart](/firmware/hardware/esp32/zephyr-quickstart/set-up-zephyr) | Use for ESP32 MCUs | -| Infineon | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | ModusToolbox™ [Readme](https://github.com/golioth/golioth-firmware-sdk/tree/main/examples/modus_toolbox) / [Webinar](https://blog.golioth.io/a-recap-of-how-to-collect-data-from-iot-sensors-using-golioth-and-the-infineon-modustoolbox/) | Use for Infineon MCUs like PSoC6 | -| Nordic | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [nRF9160 Zephyr Quickstart](/firmware/hardware/nrf91/zephyr-quickstart/set-up-zephyr) | Use for Nordic MCUs like nRF9160 and nRF7002 | -| NXP | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [mimxrt1060evkb Zephyr Quickstart](/firmware/hardware/mimxrt1060_evkb/zephyr-quickstart/set-up-zephyr) | Use for NXP MCUs like i.MX RT1062 and i.MX RT1024 | -| Other Vendors | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [mimxrt1060evkb Zephyr Quickstart](/firmware/hardware/mimxrt1060_evkb/zephyr-quickstart/set-up-zephyr) | Many other MCUs are supported by Zephyr will work with Golioth! Follow this quickstart and substitute your board name in the build examples. | - -:::info Don't see your hardware listed? - -The Golioth Firmware SDK includes a [porting -guide](https://github.com/golioth/golioth-firmware-sdk/blob/main/docs/Porting_Guide.md) -that you can follow to add a port for your platform. If you are interested in -Golioth adding new platform support, please [contact -us](mailto:hello@golioth.io). - -::: - -### Beta Platform Support - -| Vendor | SDK | Quickstart | Note | -| ---------- | -------------------- | ---------- | ---- | -| Zephyr | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | Golioth Firmware SDK: [Zephyr Beta Support Readme](https://github.com/golioth/golioth-firmware-sdk/tree/main/examples/zephyr) | The [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) already delivers support for Zephyr RTOS. We are actively working on Zephyr support in the Golioth Firmware SDK. The beta is currently open for testing. | - ## Board Support Tiers Golioth has three levels of board support: Continuously Verified, Verified, diff --git a/docs/getting-started/1-overview.md b/docs/getting-started/1-overview.md index 305dae17..4f9982de 100644 --- a/docs/getting-started/1-overview.md +++ b/docs/getting-started/1-overview.md @@ -1,5 +1,4 @@ --- -id: overview title: Platform Overview slug: /getting-started --- diff --git a/docs/landing_page.md b/docs/landing_page.md index c55fced8..aa615f53 100644 --- a/docs/landing_page.md +++ b/docs/landing_page.md @@ -17,6 +17,39 @@ We chose the [the Zephyr Projectℱ](https://www.zephyrproject.org), as the basi To get started, check out the [Quickstart Guide](/getting-started/). That will get you set up with a Golioth account and help you to provision your first devices. Then you can choose which platform to try out using our [supported hardware](/firmware/hardware). +## Using Golioth with your IoT Hardware + +Golioth offers two device SDKs that support a wide range of hardware. Here is +some guidance on what to use when setting up a development environment for your +hardware. + +### Platform Support + +| Vendor | SDK | Quickstart | Note | +| ---------- | -------------------- | ---------- | ---- | +| Espressif | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | [ESP32 ESP-IDF Quickstart](/firmware/hardware/esp32/espidf-quickstart/set-up-espidf) | Use for ESP32 MCUs | +| Espressif | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [ESP32 Zephyr Quickstart](/firmware/hardware/esp32/zephyr-quickstart/set-up-zephyr) | Use for ESP32 MCUs | +| Infineon | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | ModusToolbox™ [Readme](https://github.com/golioth/golioth-firmware-sdk/tree/main/examples/modus_toolbox) / [Webinar](https://blog.golioth.io/a-recap-of-how-to-collect-data-from-iot-sensors-using-golioth-and-the-infineon-modustoolbox/) | Use for Infineon MCUs like PSoC6 | +| Nordic | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [nRF9160 Zephyr Quickstart](/firmware/hardware/nrf91/zephyr-quickstart/set-up-zephyr) | Use for Nordic MCUs like nRF9160 and nRF7002 | +| NXP | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [mimxrt1060evkb Zephyr Quickstart](/firmware/hardware/mimxrt1060_evkb/zephyr-quickstart/set-up-zephyr) | Use for NXP MCUs like i.MX RT1062 and i.MX RT1024 | +| Other Vendors | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [mimxrt1060evkb Zephyr Quickstart](/firmware/hardware/mimxrt1060_evkb/zephyr-quickstart/set-up-zephyr) | Many other MCUs are supported by Zephyr will work with Golioth! Follow this quickstart and substitute your board name in the build examples. | + +:::info Don't see your hardware listed? + +The Golioth Firmware SDK includes a [porting +guide](https://github.com/golioth/golioth-firmware-sdk/blob/main/docs/Porting_Guide.md) +that you can follow to add a port for your platform. If you are interested in +Golioth adding new platform support, please [contact +us](mailto:hello@golioth.io). + +::: + +### Beta Platform Support + +| Vendor | SDK | Quickstart | Note | +| ---------- | -------------------- | ---------- | ---- | +| Zephyr | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | Golioth Firmware SDK: [Zephyr Beta Support Readme](https://github.com/golioth/golioth-firmware-sdk/tree/main/examples/zephyr) | The [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) already delivers support for Zephyr RTOS. We are actively working on Zephyr support in the Golioth Firmware SDK. The beta is currently open for testing. | + ## Navigation There are 5 major sections on the Golioth Docs page: From d7bce54beb83762212a8908f59e3be677c4f65f0 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Mon, 27 Nov 2023 14:46:50 -0600 Subject: [PATCH 13/88] landing-page: update summary and navigation * Tighten up summary to more closely reflect our current marketing. * Update navigation section to reflect relocated sections. Signed-off-by: Mike Szczys --- docs/landing_page.md | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/docs/landing_page.md b/docs/landing_page.md index aa615f53..7e868d21 100644 --- a/docs/landing_page.md +++ b/docs/landing_page.md @@ -9,13 +9,19 @@ hide_title: true --- -Golioth is an IoT platform that provides cloud services for embedded devices. Colloquially, we hope to solve the “impedance mismatch between hardware and cloud engineering teams" (a phrase we learned from an early user). Golioth is purpose-built for you and the hardware you develop. Enable everything that your devices need from the cloud, including device messaging, security, updates, analytics, and more. - -We chose the [the Zephyr Projectℱ](https://www.zephyrproject.org), as the basis of our first embedded offering. Zephyr is an open-source, safe, secure, and flexible RTOS under the Linux Foundation. We offer the Golioth SDK--built on top of the Zephyr SDK--which you can use to quickly bootstrap an IoT application. +Golioth is an IoT platform that provides cloud services for embedded devices. We +think of our platform as a "universal connector". Golioth is purpose-built for +you and the hardware you develop. Golioth enables everything that your devices +need from the cloud, from establishing secure connections and providing +over-the-air updates, to managing data to/from your fleet and connecting that to +any cloud service you may need. ## Get started today -To get started, check out the [Quickstart Guide](/getting-started/). That will get you set up with a Golioth account and help you to provision your first devices. Then you can choose which platform to try out using our [supported hardware](/firmware/hardware). +Our [Quickstart Guide](/getting-started/) gets you set up with a Golioth account +and walks through how to provision your first devices. From there you can run a +pre-compiled binary, or build your own samples from our device SDKs. Either way, +you will have an IoT test fleet connected and sending data to the cloud today. ## Using Golioth with your IoT Hardware @@ -52,10 +58,23 @@ us](mailto:hello@golioth.io). ## Navigation -There are 5 major sections on the Golioth Docs page: - -- [Getting Started](/getting-started) - Start here! If you are confused at all, please [join our Discord](https://golioth.io/discord) or [let us know directly](mailto:devrel@golioth.io) -- [Hardware](/firmware/hardware) - This section details which device platforms are explicitly supported and how you can get started with them quickly. There is also a catalog of all hardware that works with Golioth and whether or not it has been verified by the Golioth team, the community, the Zephyr community, etc. -- [Firmware](/firmware) - This is the "device side" features of our offerings, including device Software Development Kets (SDKs). This section shows how to run the sample firmware that connects to the offerings in the Services section. -- [Cloud](/device-management) - This is the "server side" features of our offerings. Your embedded hardware will communicate with Golioth Services to push and pull information to the broader internet. This section details how to control and interact with each service, and also test the service without any hardware involved. This section also details how to interact with that data via webapps, mobile apps, and from anywhere else on the web. Make calls to the Golioth web API and display your users' data! -- [Reference](/reference) - All generated API documentation lives here, including for the web side API and the Zephyr API +- [Getting Started](/getting-started) - Start here! If you get stuck, please + post your questions on [the Golioth Forum](https://forum.golioth.io/) or [let + us know directly](mailto:devrel@golioth.io). +- [Firmware](/firmware) - These are the "device side" features of our offerings, + including device Software Development Kits (SDKs). This section shows how to + set up a build environment, run sample firmware, and use Golioth services on + your microcontroller-based IoT fleet. +- [Device Management](/device-management) - These are "server side" features of + the Golioth platform that deal with controlling your devices in the filed. + Here you will find details about rolling out over-the-air (OTA) firmware + updates, accessing device logs, changing device settings for your fleet, and + issuing remote procedure calls (RPC). +- [Data Handling](/data-management) - These are "server side" features of the + Golioth platform that deal with data moving to and from our IoT fleet. Here + you will find details about accessing stored data from your devices, and + options for routing that data to other platforms, whether that's your own + server, your database backend, or just about any other data service you can + imagine. +- [Reference](/reference) - All generated API documentation lives here, + including for the web side API and the Zephyr API From 8e7d95fca93ef289763962a3db90deafb15038ff Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Mon, 27 Nov 2023 14:47:58 -0600 Subject: [PATCH 14/88] landing-page: add overview video * Add overview video * Add CSS for YouTube video embed * Usage: * on YouTube page, click Share->Embed and copy code into Docusuarus * remove the width and height properties * add `class="youtube-embed"` Signed-off-by: Mike Szczys --- docs/landing_page.md | 2 ++ src/css/custom.css | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/docs/landing_page.md b/docs/landing_page.md index 7e868d21..c1f8c822 100644 --- a/docs/landing_page.md +++ b/docs/landing_page.md @@ -16,6 +16,8 @@ need from the cloud, from establishing secure connections and providing over-the-air updates, to managing data to/from your fleet and connecting that to any cloud service you may need. + + ## Get started today Our [Quickstart Guide](/getting-started/) gets you set up with a Golioth account diff --git a/src/css/custom.css b/src/css/custom.css index e3572bf3..df171555 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -146,3 +146,8 @@ html[data-theme="dark"] { flex-direction: column; } } + +iframe.youtube-embed { + width: 100%; + aspect-ratio: 16 / 9; +} From e5d664ee4ac56cc285a8c5648e8a76c0491ae7b8 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Mon, 27 Nov 2023 12:02:12 -0600 Subject: [PATCH 15/88] rename: data-management to data-handling * Remove id and slug from pages where it was not necessary Signed-off-by: Mike Szczys --- .../1-lightdb-state/2-structure-data.md | 0 .../1-lightdb-state/3-read-write-data.md | 0 .../1-lightdb-state/4-simulating-devices.md | 0 .../1-stored-data/1-lightdb-state/README.md | 2 -- .../1-stored-data/1-lightdb-state/_category_.yml | 0 .../4-lightdb-stream/2-sending-data.md | 0 .../4-lightdb-stream/3-querying-data.md | 0 .../1-stored-data/4-lightdb-stream/README.md | 2 -- .../1-stored-data/4-lightdb-stream/_category_.yml | 0 .../1-stored-data/README.md | 2 -- .../1-stored-data/_category_.yml | 0 .../2-output-streams/1-mongo/README.md | 0 .../2-output-streams/1-mongo/_category_.yml | 0 .../1-mongo/assets/add-ip-address.png | Bin .../1-mongo/assets/atlas-connect-button.png | Bin .../1-mongo/assets/atlas-connection-string.png | Bin .../1-mongo/assets/atlas-network-access.png | Bin .../assets/choosing-timeseries-additional-prefs.png | Bin .../1-mongo/assets/create-collection-button.png | Bin .../1-mongo/assets/create-collection-form.png | Bin .../1-mongo/assets/create-outputstream-form.png | Bin .../1-mongo/assets/ip-access-list-entry.png | Bin .../1-mongo/assets/select-outputstream.png | Bin .../1-mongo/assets/timefield-metafield-form.png | Bin .../2-output-streams/2-webhook/README.md | 6 ++---- .../2-output-streams/2-webhook/_category_.yml | 0 .../2-output-streams/3-azure-event-hub/README.md | 6 ++---- .../3-azure-event-hub/_category_.yml | 0 .../2-output-streams/4-aws-sqs/README.md | 6 ++---- .../2-output-streams/4-aws-sqs/_category_.yml | 0 .../2-output-streams/4-aws-sqs/assets/msg-body.png | Bin .../4-aws-sqs/assets/msg-header.png | Bin .../2-output-streams/5-gcp-pubsub/README.md | 4 +--- .../2-output-streams/5-gcp-pubsub/_category_.yml | 0 .../5-gcp-pubsub/assets/gcp-created-service-acc.png | Bin .../assets/gcp-detailing-service-acc.png | Bin .../assets/gcp-iam-create-service-acc.png | Bin .../5-gcp-pubsub/assets/gcp-pubsub-topic-name.png | Bin .../5-gcp-pubsub/assets/gcp-pubsub-topics.png | Bin .../golioth-creating-pubsub-output-stream.png | Bin .../assets/golioth-gcp-output-stream.png | Bin .../2-output-streams/6-datacake/README.md | 4 +--- .../2-output-streams/6-datacake/_category_.yml | 0 .../2-output-streams/7-ubidots/README.md | 4 +--- .../2-output-streams/7-ubidots/_category_.yml | 0 .../2-output-streams/8-influx/README.md | 2 -- .../2-output-streams/8-influx/_category_.yml | 0 .../8-influx/assets/2023-07-20_15-37.png | Bin .../2-output-streams/8-influx/assets/buckets.png | Bin .../8-influx/assets/cluster-url.png | Bin .../8-influx/assets/create-outputstream-form.png | Bin .../8-influx/assets/generate-token-button.png | Bin .../8-influx/assets/generate-token.png | Bin .../8-influx/assets/load-data-menu.png | Bin .../8-influx/assets/org-settings-menu.png | Bin .../8-influx/assets/select-outputstream.png | Bin .../8-influx/assets/token-create-form.png | Bin .../2-output-streams/9-event-types/2-events.mdx | 0 .../2-output-streams/9-event-types/README.md | 2 +- .../2-output-streams/9-event-types/_category_.yml | 0 .../2-output-streams/README.md | 2 -- .../2-output-streams/_category_.yml | 0 .../2-output-streams/messages.json | 0 docs/{data-management => data-handling}/README.md | 4 ++-- .../output-streams_azure-event-hub-connect.png | Bin .../output-streams_azure-event-hub-send-policy.png | Bin ...output-streams_azure-event-hub-shared-access.png | Bin .../3-simulating-devices-coap.md | 2 +- .../zephyr-device-sdk/light-db-stream/README.md | 2 +- docs/reference/2-protocols/1-coap/3-lightdb.md | 4 ++-- .../2-protocols/1-coap/4-lightdb-stream.md | 4 ++-- docs/reference/2-protocols/1-coap/7-limits.md | 2 +- docs/reference/4-websocket/3-Endpoints/1-lightdb.md | 2 +- .../4-websocket/3-Endpoints/2-lightdb-stream.md | 2 +- docusaurus.config.js | 6 +++--- sidebars.js | 2 +- 76 files changed, 25 insertions(+), 47 deletions(-) rename docs/{data-management => data-handling}/1-stored-data/1-lightdb-state/2-structure-data.md (100%) rename docs/{data-management => data-handling}/1-stored-data/1-lightdb-state/3-read-write-data.md (100%) rename docs/{data-management => data-handling}/1-stored-data/1-lightdb-state/4-simulating-devices.md (100%) rename docs/{data-management => data-handling}/1-stored-data/1-lightdb-state/README.md (97%) rename docs/{data-management => data-handling}/1-stored-data/1-lightdb-state/_category_.yml (100%) rename docs/{data-management => data-handling}/1-stored-data/4-lightdb-stream/2-sending-data.md (100%) rename docs/{data-management => data-handling}/1-stored-data/4-lightdb-stream/3-querying-data.md (100%) rename docs/{data-management => data-handling}/1-stored-data/4-lightdb-stream/README.md (95%) rename docs/{data-management => data-handling}/1-stored-data/4-lightdb-stream/_category_.yml (100%) rename docs/{data-management => data-handling}/1-stored-data/README.md (83%) rename docs/{data-management => data-handling}/1-stored-data/_category_.yml (100%) rename docs/{data-management => data-handling}/2-output-streams/1-mongo/README.md (100%) rename docs/{data-management => data-handling}/2-output-streams/1-mongo/_category_.yml (100%) rename docs/{data-management => data-handling}/2-output-streams/1-mongo/assets/add-ip-address.png (100%) rename docs/{data-management => data-handling}/2-output-streams/1-mongo/assets/atlas-connect-button.png (100%) rename docs/{data-management => data-handling}/2-output-streams/1-mongo/assets/atlas-connection-string.png (100%) rename docs/{data-management => data-handling}/2-output-streams/1-mongo/assets/atlas-network-access.png (100%) rename docs/{data-management => data-handling}/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png (100%) rename docs/{data-management => data-handling}/2-output-streams/1-mongo/assets/create-collection-button.png (100%) rename docs/{data-management => data-handling}/2-output-streams/1-mongo/assets/create-collection-form.png (100%) rename docs/{data-management => data-handling}/2-output-streams/1-mongo/assets/create-outputstream-form.png (100%) rename docs/{data-management => data-handling}/2-output-streams/1-mongo/assets/ip-access-list-entry.png (100%) rename docs/{data-management => data-handling}/2-output-streams/1-mongo/assets/select-outputstream.png (100%) rename docs/{data-management => data-handling}/2-output-streams/1-mongo/assets/timefield-metafield-form.png (100%) rename docs/{data-management => data-handling}/2-output-streams/2-webhook/README.md (80%) rename docs/{data-management => data-handling}/2-output-streams/2-webhook/_category_.yml (100%) rename docs/{data-management => data-handling}/2-output-streams/3-azure-event-hub/README.md (87%) rename docs/{data-management => data-handling}/2-output-streams/3-azure-event-hub/_category_.yml (100%) rename docs/{data-management => data-handling}/2-output-streams/4-aws-sqs/README.md (88%) rename docs/{data-management => data-handling}/2-output-streams/4-aws-sqs/_category_.yml (100%) rename docs/{data-management => data-handling}/2-output-streams/4-aws-sqs/assets/msg-body.png (100%) rename docs/{data-management => data-handling}/2-output-streams/4-aws-sqs/assets/msg-header.png (100%) rename docs/{data-management => data-handling}/2-output-streams/5-gcp-pubsub/README.md (96%) rename docs/{data-management => data-handling}/2-output-streams/5-gcp-pubsub/_category_.yml (100%) rename docs/{data-management => data-handling}/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png (100%) rename docs/{data-management => data-handling}/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png (100%) rename docs/{data-management => data-handling}/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png (100%) rename docs/{data-management => data-handling}/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png (100%) rename docs/{data-management => data-handling}/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png (100%) rename docs/{data-management => data-handling}/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png (100%) rename docs/{data-management => data-handling}/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png (100%) rename docs/{data-management => data-handling}/2-output-streams/6-datacake/README.md (95%) rename docs/{data-management => data-handling}/2-output-streams/6-datacake/_category_.yml (100%) rename docs/{data-management => data-handling}/2-output-streams/7-ubidots/README.md (95%) rename docs/{data-management => data-handling}/2-output-streams/7-ubidots/_category_.yml (100%) rename docs/{data-management => data-handling}/2-output-streams/8-influx/README.md (98%) rename docs/{data-management => data-handling}/2-output-streams/8-influx/_category_.yml (100%) rename docs/{data-management => data-handling}/2-output-streams/8-influx/assets/2023-07-20_15-37.png (100%) rename docs/{data-management => data-handling}/2-output-streams/8-influx/assets/buckets.png (100%) rename docs/{data-management => data-handling}/2-output-streams/8-influx/assets/cluster-url.png (100%) rename docs/{data-management => data-handling}/2-output-streams/8-influx/assets/create-outputstream-form.png (100%) rename docs/{data-management => data-handling}/2-output-streams/8-influx/assets/generate-token-button.png (100%) rename docs/{data-management => data-handling}/2-output-streams/8-influx/assets/generate-token.png (100%) rename docs/{data-management => data-handling}/2-output-streams/8-influx/assets/load-data-menu.png (100%) rename docs/{data-management => data-handling}/2-output-streams/8-influx/assets/org-settings-menu.png (100%) rename docs/{data-management => data-handling}/2-output-streams/8-influx/assets/select-outputstream.png (100%) rename docs/{data-management => data-handling}/2-output-streams/8-influx/assets/token-create-form.png (100%) rename docs/{data-management => data-handling}/2-output-streams/9-event-types/2-events.mdx (100%) rename docs/{data-management => data-handling}/2-output-streams/9-event-types/README.md (89%) rename docs/{data-management => data-handling}/2-output-streams/9-event-types/_category_.yml (100%) rename docs/{data-management => data-handling}/2-output-streams/README.md (78%) rename docs/{data-management => data-handling}/2-output-streams/_category_.yml (100%) rename docs/{data-management => data-handling}/2-output-streams/messages.json (100%) rename docs/{data-management => data-handling}/README.md (84%) rename docs/{data-management => data-handling}/assets/output-streams_azure-event-hub-connect.png (100%) rename docs/{data-management => data-handling}/assets/output-streams_azure-event-hub-send-policy.png (100%) rename docs/{data-management => data-handling}/assets/output-streams_azure-event-hub-shared-access.png (100%) diff --git a/docs/data-management/1-stored-data/1-lightdb-state/2-structure-data.md b/docs/data-handling/1-stored-data/1-lightdb-state/2-structure-data.md similarity index 100% rename from docs/data-management/1-stored-data/1-lightdb-state/2-structure-data.md rename to docs/data-handling/1-stored-data/1-lightdb-state/2-structure-data.md diff --git a/docs/data-management/1-stored-data/1-lightdb-state/3-read-write-data.md b/docs/data-handling/1-stored-data/1-lightdb-state/3-read-write-data.md similarity index 100% rename from docs/data-management/1-stored-data/1-lightdb-state/3-read-write-data.md rename to docs/data-handling/1-stored-data/1-lightdb-state/3-read-write-data.md diff --git a/docs/data-management/1-stored-data/1-lightdb-state/4-simulating-devices.md b/docs/data-handling/1-stored-data/1-lightdb-state/4-simulating-devices.md similarity index 100% rename from docs/data-management/1-stored-data/1-lightdb-state/4-simulating-devices.md rename to docs/data-handling/1-stored-data/1-lightdb-state/4-simulating-devices.md diff --git a/docs/data-management/1-stored-data/1-lightdb-state/README.md b/docs/data-handling/1-stored-data/1-lightdb-state/README.md similarity index 97% rename from docs/data-management/1-stored-data/1-lightdb-state/README.md rename to docs/data-handling/1-stored-data/1-lightdb-state/README.md index df241612..f197b649 100644 --- a/docs/data-management/1-stored-data/1-lightdb-state/README.md +++ b/docs/data-handling/1-stored-data/1-lightdb-state/README.md @@ -1,7 +1,5 @@ --- -id: overview title: LightDB State Overview -slug: /data-management/stored-data/lightdb-state --- ## What is LightDB? diff --git a/docs/data-management/1-stored-data/1-lightdb-state/_category_.yml b/docs/data-handling/1-stored-data/1-lightdb-state/_category_.yml similarity index 100% rename from docs/data-management/1-stored-data/1-lightdb-state/_category_.yml rename to docs/data-handling/1-stored-data/1-lightdb-state/_category_.yml diff --git a/docs/data-management/1-stored-data/4-lightdb-stream/2-sending-data.md b/docs/data-handling/1-stored-data/4-lightdb-stream/2-sending-data.md similarity index 100% rename from docs/data-management/1-stored-data/4-lightdb-stream/2-sending-data.md rename to docs/data-handling/1-stored-data/4-lightdb-stream/2-sending-data.md diff --git a/docs/data-management/1-stored-data/4-lightdb-stream/3-querying-data.md b/docs/data-handling/1-stored-data/4-lightdb-stream/3-querying-data.md similarity index 100% rename from docs/data-management/1-stored-data/4-lightdb-stream/3-querying-data.md rename to docs/data-handling/1-stored-data/4-lightdb-stream/3-querying-data.md diff --git a/docs/data-management/1-stored-data/4-lightdb-stream/README.md b/docs/data-handling/1-stored-data/4-lightdb-stream/README.md similarity index 95% rename from docs/data-management/1-stored-data/4-lightdb-stream/README.md rename to docs/data-handling/1-stored-data/4-lightdb-stream/README.md index 7aad9296..29055f59 100644 --- a/docs/data-management/1-stored-data/4-lightdb-stream/README.md +++ b/docs/data-handling/1-stored-data/4-lightdb-stream/README.md @@ -1,7 +1,5 @@ --- -id: overview title: LightDB Stream Overview -slug: /data-management/stored-data/lightdb-stream --- ## What is LightDB Stream? diff --git a/docs/data-management/1-stored-data/4-lightdb-stream/_category_.yml b/docs/data-handling/1-stored-data/4-lightdb-stream/_category_.yml similarity index 100% rename from docs/data-management/1-stored-data/4-lightdb-stream/_category_.yml rename to docs/data-handling/1-stored-data/4-lightdb-stream/_category_.yml diff --git a/docs/data-management/1-stored-data/README.md b/docs/data-handling/1-stored-data/README.md similarity index 83% rename from docs/data-management/1-stored-data/README.md rename to docs/data-handling/1-stored-data/README.md index 447da97c..afdc45c6 100644 --- a/docs/data-management/1-stored-data/README.md +++ b/docs/data-handling/1-stored-data/README.md @@ -1,7 +1,5 @@ --- -id: overview title: Data Storage on Golioth -slug: /data-management/stored-data --- This is page describes two types of device data stored on Golioth: diff --git a/docs/data-management/1-stored-data/_category_.yml b/docs/data-handling/1-stored-data/_category_.yml similarity index 100% rename from docs/data-management/1-stored-data/_category_.yml rename to docs/data-handling/1-stored-data/_category_.yml diff --git a/docs/data-management/2-output-streams/1-mongo/README.md b/docs/data-handling/2-output-streams/1-mongo/README.md similarity index 100% rename from docs/data-management/2-output-streams/1-mongo/README.md rename to docs/data-handling/2-output-streams/1-mongo/README.md diff --git a/docs/data-management/2-output-streams/1-mongo/_category_.yml b/docs/data-handling/2-output-streams/1-mongo/_category_.yml similarity index 100% rename from docs/data-management/2-output-streams/1-mongo/_category_.yml rename to docs/data-handling/2-output-streams/1-mongo/_category_.yml diff --git a/docs/data-management/2-output-streams/1-mongo/assets/add-ip-address.png b/docs/data-handling/2-output-streams/1-mongo/assets/add-ip-address.png similarity index 100% rename from docs/data-management/2-output-streams/1-mongo/assets/add-ip-address.png rename to docs/data-handling/2-output-streams/1-mongo/assets/add-ip-address.png diff --git a/docs/data-management/2-output-streams/1-mongo/assets/atlas-connect-button.png b/docs/data-handling/2-output-streams/1-mongo/assets/atlas-connect-button.png similarity index 100% rename from docs/data-management/2-output-streams/1-mongo/assets/atlas-connect-button.png rename to docs/data-handling/2-output-streams/1-mongo/assets/atlas-connect-button.png diff --git a/docs/data-management/2-output-streams/1-mongo/assets/atlas-connection-string.png b/docs/data-handling/2-output-streams/1-mongo/assets/atlas-connection-string.png similarity index 100% rename from docs/data-management/2-output-streams/1-mongo/assets/atlas-connection-string.png rename to docs/data-handling/2-output-streams/1-mongo/assets/atlas-connection-string.png diff --git a/docs/data-management/2-output-streams/1-mongo/assets/atlas-network-access.png b/docs/data-handling/2-output-streams/1-mongo/assets/atlas-network-access.png similarity index 100% rename from docs/data-management/2-output-streams/1-mongo/assets/atlas-network-access.png rename to docs/data-handling/2-output-streams/1-mongo/assets/atlas-network-access.png diff --git a/docs/data-management/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png b/docs/data-handling/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png similarity index 100% rename from docs/data-management/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png rename to docs/data-handling/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png diff --git a/docs/data-management/2-output-streams/1-mongo/assets/create-collection-button.png b/docs/data-handling/2-output-streams/1-mongo/assets/create-collection-button.png similarity index 100% rename from docs/data-management/2-output-streams/1-mongo/assets/create-collection-button.png rename to docs/data-handling/2-output-streams/1-mongo/assets/create-collection-button.png diff --git a/docs/data-management/2-output-streams/1-mongo/assets/create-collection-form.png b/docs/data-handling/2-output-streams/1-mongo/assets/create-collection-form.png similarity index 100% rename from docs/data-management/2-output-streams/1-mongo/assets/create-collection-form.png rename to docs/data-handling/2-output-streams/1-mongo/assets/create-collection-form.png diff --git a/docs/data-management/2-output-streams/1-mongo/assets/create-outputstream-form.png b/docs/data-handling/2-output-streams/1-mongo/assets/create-outputstream-form.png similarity index 100% rename from docs/data-management/2-output-streams/1-mongo/assets/create-outputstream-form.png rename to docs/data-handling/2-output-streams/1-mongo/assets/create-outputstream-form.png diff --git a/docs/data-management/2-output-streams/1-mongo/assets/ip-access-list-entry.png b/docs/data-handling/2-output-streams/1-mongo/assets/ip-access-list-entry.png similarity index 100% rename from docs/data-management/2-output-streams/1-mongo/assets/ip-access-list-entry.png rename to docs/data-handling/2-output-streams/1-mongo/assets/ip-access-list-entry.png diff --git a/docs/data-management/2-output-streams/1-mongo/assets/select-outputstream.png b/docs/data-handling/2-output-streams/1-mongo/assets/select-outputstream.png similarity index 100% rename from docs/data-management/2-output-streams/1-mongo/assets/select-outputstream.png rename to docs/data-handling/2-output-streams/1-mongo/assets/select-outputstream.png diff --git a/docs/data-management/2-output-streams/1-mongo/assets/timefield-metafield-form.png b/docs/data-handling/2-output-streams/1-mongo/assets/timefield-metafield-form.png similarity index 100% rename from docs/data-management/2-output-streams/1-mongo/assets/timefield-metafield-form.png rename to docs/data-handling/2-output-streams/1-mongo/assets/timefield-metafield-form.png diff --git a/docs/data-management/2-output-streams/2-webhook/README.md b/docs/data-handling/2-output-streams/2-webhook/README.md similarity index 80% rename from docs/data-management/2-output-streams/2-webhook/README.md rename to docs/data-handling/2-output-streams/2-webhook/README.md index 40bc6d05..2026f9c9 100644 --- a/docs/data-management/2-output-streams/2-webhook/README.md +++ b/docs/data-handling/2-output-streams/2-webhook/README.md @@ -1,7 +1,5 @@ --- -id: overview title: Webhooks Overview -slug: /data-management/output-streams/webhook --- Webhooks are a simple and flexible way to receive events from the Golioth platform using HTTP. It is really easy to build a web server to receive these events and you can write you own logic to process them. @@ -17,9 +15,9 @@ For each Output Stream type, there is a set of specify attributes. Here are the ### Example -As mentioned on [Output Streams Overview](/data-management/output-streams), events are sent using the [Cloud Events](https://cloudevents.io) format. For Webhooks specifically, some metadata of the event are sent as HTTP headers. +As mentioned on [Output Streams Overview](/data-handling/output-streams), events are sent using the [Cloud Events](https://cloudevents.io) format. For Webhooks specifically, some metadata of the event are sent as HTTP headers. -Here is an example of an event arriving on a webhook. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/data-management/output-streams/event-types/events)). +Here is an example of an event arriving on a webhook. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/data-handling/output-streams/event-types/events)). ``` POST {your-uri-path} HTTP/1.1 diff --git a/docs/data-management/2-output-streams/2-webhook/_category_.yml b/docs/data-handling/2-output-streams/2-webhook/_category_.yml similarity index 100% rename from docs/data-management/2-output-streams/2-webhook/_category_.yml rename to docs/data-handling/2-output-streams/2-webhook/_category_.yml diff --git a/docs/data-management/2-output-streams/3-azure-event-hub/README.md b/docs/data-handling/2-output-streams/3-azure-event-hub/README.md similarity index 87% rename from docs/data-management/2-output-streams/3-azure-event-hub/README.md rename to docs/data-handling/2-output-streams/3-azure-event-hub/README.md index 74ab9a52..b2df690d 100644 --- a/docs/data-management/2-output-streams/3-azure-event-hub/README.md +++ b/docs/data-handling/2-output-streams/3-azure-event-hub/README.md @@ -1,7 +1,5 @@ --- -id: overview title: Azure Event Hub Overview -slug: /data-management/output-streams/azure-event-hub --- Azure Event Hub is a fully managed, real-time data ingestion service that can be used to consume Golioth events in a simple, trusted, and scalable way. You can ingest data in multiple ways inside Azure with support for popular protocols, including AMQP, HTTPS, and Apache Kafka. You can also consume Azure Event Hub in a serverless manner using Azure Functions. @@ -33,9 +31,9 @@ To use this integration, you need to create an Event Hub on Azure and get the co ### Example -As mentioned on [Output Streams Overview](/data-management/output-streams), events are sent using [Cloud Events](https://cloudevents.io) format. For Azure Event Hub, some metadata of the event are sent together with the message body. +As mentioned on [Output Streams Overview](/data-handling/output-streams), events are sent using [Cloud Events](https://cloudevents.io) format. For Azure Event Hub, some metadata of the event are sent together with the message body. -Here is an example of an event arriving on Event Hub. The payload will be inside a `data` attribute (see event payloads on [Output Streams Event Types](/data-management/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. +Here is an example of an event arriving on Event Hub. The payload will be inside a `data` attribute (see event payloads on [Output Streams Event Types](/data-handling/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. ```json { diff --git a/docs/data-management/2-output-streams/3-azure-event-hub/_category_.yml b/docs/data-handling/2-output-streams/3-azure-event-hub/_category_.yml similarity index 100% rename from docs/data-management/2-output-streams/3-azure-event-hub/_category_.yml rename to docs/data-handling/2-output-streams/3-azure-event-hub/_category_.yml diff --git a/docs/data-management/2-output-streams/4-aws-sqs/README.md b/docs/data-handling/2-output-streams/4-aws-sqs/README.md similarity index 88% rename from docs/data-management/2-output-streams/4-aws-sqs/README.md rename to docs/data-handling/2-output-streams/4-aws-sqs/README.md index a604e760..b31cb638 100644 --- a/docs/data-management/2-output-streams/4-aws-sqs/README.md +++ b/docs/data-handling/2-output-streams/4-aws-sqs/README.md @@ -1,7 +1,5 @@ --- -id: overview title: AWS SQS Overview -slug: /data-management/output-streams/aws-sqs --- Amazon Simple Queue Service (SQS) is a fully managed message queuing service that enables you receive events generated on the Golioth platform that can be processed in a decoupled and scalable way. SQS eliminates the complexity and overhead associated with managing and operating message-oriented middleware systems. Data can be ingested using multiple solutions inside of AWS, including Serverless offerings like AWS Lambda. @@ -55,9 +53,9 @@ To use this integration, you need to create an SQS Queue and and a user with per ### Example -As mentioned on the [Output Streams Overview](/data-management/output-streams), events are sent using the [Cloud Events](https://cloudevents.io) format. For AWS SQS, some metadata of the event are sent together with the message body. +As mentioned on the [Output Streams Overview](/data-handling/output-streams), events are sent using the [Cloud Events](https://cloudevents.io) format. For AWS SQS, some metadata of the event are sent together with the message body. -Here is an example of an event arriving on SQS. The payload is going to be inside of a `data` attribute (see event payloads on [Output Streams Event Types](/data-management/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. +Here is an example of an event arriving on SQS. The payload is going to be inside of a `data` attribute (see event payloads on [Output Streams Event Types](/data-handling/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. ```json { diff --git a/docs/data-management/2-output-streams/4-aws-sqs/_category_.yml b/docs/data-handling/2-output-streams/4-aws-sqs/_category_.yml similarity index 100% rename from docs/data-management/2-output-streams/4-aws-sqs/_category_.yml rename to docs/data-handling/2-output-streams/4-aws-sqs/_category_.yml diff --git a/docs/data-management/2-output-streams/4-aws-sqs/assets/msg-body.png b/docs/data-handling/2-output-streams/4-aws-sqs/assets/msg-body.png similarity index 100% rename from docs/data-management/2-output-streams/4-aws-sqs/assets/msg-body.png rename to docs/data-handling/2-output-streams/4-aws-sqs/assets/msg-body.png diff --git a/docs/data-management/2-output-streams/4-aws-sqs/assets/msg-header.png b/docs/data-handling/2-output-streams/4-aws-sqs/assets/msg-header.png similarity index 100% rename from docs/data-management/2-output-streams/4-aws-sqs/assets/msg-header.png rename to docs/data-handling/2-output-streams/4-aws-sqs/assets/msg-header.png diff --git a/docs/data-management/2-output-streams/5-gcp-pubsub/README.md b/docs/data-handling/2-output-streams/5-gcp-pubsub/README.md similarity index 96% rename from docs/data-management/2-output-streams/5-gcp-pubsub/README.md rename to docs/data-handling/2-output-streams/5-gcp-pubsub/README.md index 32301c38..e740098f 100644 --- a/docs/data-management/2-output-streams/5-gcp-pubsub/README.md +++ b/docs/data-handling/2-output-streams/5-gcp-pubsub/README.md @@ -1,7 +1,5 @@ --- -id: overview title: Google Cloud Platform (GCP) PubSub Overview -slug: /data-management/output-streams/gcp-pubsub --- [Google Cloud PubSub](https://cloud.google.com/pubsub/) works as a messaging middleware for traditional service integration or a simple communication medium for modern microservices. Events can be ingested with serverless environments like Cloud Functions, Cloud Run or custom environments on Google Kubernetes Engine or Compute Engine. @@ -108,7 +106,7 @@ Go the [Golioth Platform](https://console.golioth.io), log in and select your Pr Golioth Output Streams use the [Cloud Events](https://cloudevents.io) format. For GCP PubSub, this means some metadata of the event are sent together with the message body. -Here is an example of an event arriving on PubSub. The payload will be inside a `data` attribute (see event payloads on [Output Streams Event Types](/data-management/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. +Here is an example of an event arriving on PubSub. The payload will be inside a `data` attribute (see event payloads on [Output Streams Event Types](/data-handling/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. ```json { diff --git a/docs/data-management/2-output-streams/5-gcp-pubsub/_category_.yml b/docs/data-handling/2-output-streams/5-gcp-pubsub/_category_.yml similarity index 100% rename from docs/data-management/2-output-streams/5-gcp-pubsub/_category_.yml rename to docs/data-handling/2-output-streams/5-gcp-pubsub/_category_.yml diff --git a/docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png b/docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png similarity index 100% rename from docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png rename to docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png diff --git a/docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png b/docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png similarity index 100% rename from docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png rename to docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png diff --git a/docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png b/docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png similarity index 100% rename from docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png rename to docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png diff --git a/docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png b/docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png similarity index 100% rename from docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png rename to docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png diff --git a/docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png b/docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png similarity index 100% rename from docs/data-management/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png rename to docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png diff --git a/docs/data-management/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png b/docs/data-handling/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png similarity index 100% rename from docs/data-management/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png rename to docs/data-handling/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png diff --git a/docs/data-management/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png b/docs/data-handling/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png similarity index 100% rename from docs/data-management/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png rename to docs/data-handling/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png diff --git a/docs/data-management/2-output-streams/6-datacake/README.md b/docs/data-handling/2-output-streams/6-datacake/README.md similarity index 95% rename from docs/data-management/2-output-streams/6-datacake/README.md rename to docs/data-handling/2-output-streams/6-datacake/README.md index b176a5e3..1084d3f3 100644 --- a/docs/data-management/2-output-streams/6-datacake/README.md +++ b/docs/data-handling/2-output-streams/6-datacake/README.md @@ -1,7 +1,5 @@ --- -id: overview title: Datacake Overview -slug: /data-management/output-streams/datacake --- [Datacake](https://datacake.co/) is a multi-purpose, low-code IoT platform that requires no programming skills and minimal time to create custom IoT applications that can be brought into a white label IoT solution at the push of a button. @@ -40,7 +38,7 @@ In this tutorial you will see how to: Golioth Output Streams use the [Cloud Events](https://cloudevents.io) format. For Datacake, this means some metadata of the event are sent as HTTP headers. -Here is an example of an event arriving on Datcake. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/data-management/output-streams/event-types/events)). +Here is an example of an event arriving on Datcake. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/data-handling/output-streams/event-types/events)). ``` diff --git a/docs/data-management/2-output-streams/6-datacake/_category_.yml b/docs/data-handling/2-output-streams/6-datacake/_category_.yml similarity index 100% rename from docs/data-management/2-output-streams/6-datacake/_category_.yml rename to docs/data-handling/2-output-streams/6-datacake/_category_.yml diff --git a/docs/data-management/2-output-streams/7-ubidots/README.md b/docs/data-handling/2-output-streams/7-ubidots/README.md similarity index 95% rename from docs/data-management/2-output-streams/7-ubidots/README.md rename to docs/data-handling/2-output-streams/7-ubidots/README.md index b02a819f..e90158e5 100644 --- a/docs/data-management/2-output-streams/7-ubidots/README.md +++ b/docs/data-handling/2-output-streams/7-ubidots/README.md @@ -1,7 +1,5 @@ --- -id: overview title: Ubidots Overview -slug: /data-management/output-streams/ubidots --- [Ubidots](https://ubidots.com/) makes it easy to white-label visualizations to produce a @@ -46,7 +44,7 @@ In this tutorial you will see how to: Golioth Output Streams use the [Cloud Events](https://cloudevents.io) format. For Ubidots, this means some metadata of the event are sent as HTTP headers. -Here is an example of an event arriving on Ubidots. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/data-management/output-streams/event-types/events)). +Here is an example of an event arriving on Ubidots. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/data-handling/output-streams/event-types/events)). ``` POST {your-uri-path} HTTP/1.1 diff --git a/docs/data-management/2-output-streams/7-ubidots/_category_.yml b/docs/data-handling/2-output-streams/7-ubidots/_category_.yml similarity index 100% rename from docs/data-management/2-output-streams/7-ubidots/_category_.yml rename to docs/data-handling/2-output-streams/7-ubidots/_category_.yml diff --git a/docs/data-management/2-output-streams/8-influx/README.md b/docs/data-handling/2-output-streams/8-influx/README.md similarity index 98% rename from docs/data-management/2-output-streams/8-influx/README.md rename to docs/data-handling/2-output-streams/8-influx/README.md index 3fd64275..8a3bc4ec 100644 --- a/docs/data-management/2-output-streams/8-influx/README.md +++ b/docs/data-handling/2-output-streams/8-influx/README.md @@ -1,7 +1,5 @@ --- -id: overview title: InfluxDB Overview -slug: /data-management/output-streams/influxdb --- [InfluxDB Cloud](https://www.influxdata.com/products/influxdb-cloud/) is a diff --git a/docs/data-management/2-output-streams/8-influx/_category_.yml b/docs/data-handling/2-output-streams/8-influx/_category_.yml similarity index 100% rename from docs/data-management/2-output-streams/8-influx/_category_.yml rename to docs/data-handling/2-output-streams/8-influx/_category_.yml diff --git a/docs/data-management/2-output-streams/8-influx/assets/2023-07-20_15-37.png b/docs/data-handling/2-output-streams/8-influx/assets/2023-07-20_15-37.png similarity index 100% rename from docs/data-management/2-output-streams/8-influx/assets/2023-07-20_15-37.png rename to docs/data-handling/2-output-streams/8-influx/assets/2023-07-20_15-37.png diff --git a/docs/data-management/2-output-streams/8-influx/assets/buckets.png b/docs/data-handling/2-output-streams/8-influx/assets/buckets.png similarity index 100% rename from docs/data-management/2-output-streams/8-influx/assets/buckets.png rename to docs/data-handling/2-output-streams/8-influx/assets/buckets.png diff --git a/docs/data-management/2-output-streams/8-influx/assets/cluster-url.png b/docs/data-handling/2-output-streams/8-influx/assets/cluster-url.png similarity index 100% rename from docs/data-management/2-output-streams/8-influx/assets/cluster-url.png rename to docs/data-handling/2-output-streams/8-influx/assets/cluster-url.png diff --git a/docs/data-management/2-output-streams/8-influx/assets/create-outputstream-form.png b/docs/data-handling/2-output-streams/8-influx/assets/create-outputstream-form.png similarity index 100% rename from docs/data-management/2-output-streams/8-influx/assets/create-outputstream-form.png rename to docs/data-handling/2-output-streams/8-influx/assets/create-outputstream-form.png diff --git a/docs/data-management/2-output-streams/8-influx/assets/generate-token-button.png b/docs/data-handling/2-output-streams/8-influx/assets/generate-token-button.png similarity index 100% rename from docs/data-management/2-output-streams/8-influx/assets/generate-token-button.png rename to docs/data-handling/2-output-streams/8-influx/assets/generate-token-button.png diff --git a/docs/data-management/2-output-streams/8-influx/assets/generate-token.png b/docs/data-handling/2-output-streams/8-influx/assets/generate-token.png similarity index 100% rename from docs/data-management/2-output-streams/8-influx/assets/generate-token.png rename to docs/data-handling/2-output-streams/8-influx/assets/generate-token.png diff --git a/docs/data-management/2-output-streams/8-influx/assets/load-data-menu.png b/docs/data-handling/2-output-streams/8-influx/assets/load-data-menu.png similarity index 100% rename from docs/data-management/2-output-streams/8-influx/assets/load-data-menu.png rename to docs/data-handling/2-output-streams/8-influx/assets/load-data-menu.png diff --git a/docs/data-management/2-output-streams/8-influx/assets/org-settings-menu.png b/docs/data-handling/2-output-streams/8-influx/assets/org-settings-menu.png similarity index 100% rename from docs/data-management/2-output-streams/8-influx/assets/org-settings-menu.png rename to docs/data-handling/2-output-streams/8-influx/assets/org-settings-menu.png diff --git a/docs/data-management/2-output-streams/8-influx/assets/select-outputstream.png b/docs/data-handling/2-output-streams/8-influx/assets/select-outputstream.png similarity index 100% rename from docs/data-management/2-output-streams/8-influx/assets/select-outputstream.png rename to docs/data-handling/2-output-streams/8-influx/assets/select-outputstream.png diff --git a/docs/data-management/2-output-streams/8-influx/assets/token-create-form.png b/docs/data-handling/2-output-streams/8-influx/assets/token-create-form.png similarity index 100% rename from docs/data-management/2-output-streams/8-influx/assets/token-create-form.png rename to docs/data-handling/2-output-streams/8-influx/assets/token-create-form.png diff --git a/docs/data-management/2-output-streams/9-event-types/2-events.mdx b/docs/data-handling/2-output-streams/9-event-types/2-events.mdx similarity index 100% rename from docs/data-management/2-output-streams/9-event-types/2-events.mdx rename to docs/data-handling/2-output-streams/9-event-types/2-events.mdx diff --git a/docs/data-management/2-output-streams/9-event-types/README.md b/docs/data-handling/2-output-streams/9-event-types/README.md similarity index 89% rename from docs/data-management/2-output-streams/9-event-types/README.md rename to docs/data-handling/2-output-streams/9-event-types/README.md index a426cb73..926b5943 100644 --- a/docs/data-management/2-output-streams/9-event-types/README.md +++ b/docs/data-handling/2-output-streams/9-event-types/README.md @@ -1,7 +1,7 @@ --- id: overview title: Event Types Overview -slug: /data-management/output-streams/event-types +slug: event-types --- The Golioth platform uses Cloud Events to communicate between services internally. With the Output Stream feature, we are making some of those events available for users to consume for use in their own applications. diff --git a/docs/data-management/2-output-streams/9-event-types/_category_.yml b/docs/data-handling/2-output-streams/9-event-types/_category_.yml similarity index 100% rename from docs/data-management/2-output-streams/9-event-types/_category_.yml rename to docs/data-handling/2-output-streams/9-event-types/_category_.yml diff --git a/docs/data-management/2-output-streams/README.md b/docs/data-handling/2-output-streams/README.md similarity index 78% rename from docs/data-management/2-output-streams/README.md rename to docs/data-handling/2-output-streams/README.md index 41c4e9c7..42ca27ba 100644 --- a/docs/data-management/2-output-streams/README.md +++ b/docs/data-handling/2-output-streams/README.md @@ -1,7 +1,5 @@ --- -id: overview title: Output Streams Overview -slug: /data-management/output-streams --- Output Streams are a feature of the Golioth platform that allows users to integrate their data seamlessly with a number of external services. diff --git a/docs/data-management/2-output-streams/_category_.yml b/docs/data-handling/2-output-streams/_category_.yml similarity index 100% rename from docs/data-management/2-output-streams/_category_.yml rename to docs/data-handling/2-output-streams/_category_.yml diff --git a/docs/data-management/2-output-streams/messages.json b/docs/data-handling/2-output-streams/messages.json similarity index 100% rename from docs/data-management/2-output-streams/messages.json rename to docs/data-handling/2-output-streams/messages.json diff --git a/docs/data-management/README.md b/docs/data-handling/README.md similarity index 84% rename from docs/data-management/README.md rename to docs/data-handling/README.md index a4155cf1..168db615 100644 --- a/docs/data-management/README.md +++ b/docs/data-handling/README.md @@ -1,6 +1,6 @@ --- -title: Golioth Data Management -slug: /data-management +title: Golioth Data Handling +slug: /data-handling sidebar_position: 0 --- diff --git a/docs/data-management/assets/output-streams_azure-event-hub-connect.png b/docs/data-handling/assets/output-streams_azure-event-hub-connect.png similarity index 100% rename from docs/data-management/assets/output-streams_azure-event-hub-connect.png rename to docs/data-handling/assets/output-streams_azure-event-hub-connect.png diff --git a/docs/data-management/assets/output-streams_azure-event-hub-send-policy.png b/docs/data-handling/assets/output-streams_azure-event-hub-send-policy.png similarity index 100% rename from docs/data-management/assets/output-streams_azure-event-hub-send-policy.png rename to docs/data-handling/assets/output-streams_azure-event-hub-send-policy.png diff --git a/docs/data-management/assets/output-streams_azure-event-hub-shared-access.png b/docs/data-handling/assets/output-streams_azure-event-hub-shared-access.png similarity index 100% rename from docs/data-management/assets/output-streams_azure-event-hub-shared-access.png rename to docs/data-handling/assets/output-streams_azure-event-hub-shared-access.png diff --git a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md index fbde457a..ac844429 100644 --- a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md +++ b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md @@ -119,4 +119,4 @@ testing. We recommend using `coap` when first working on LightDB data storage and retrieval. The interactive nature makes it easy to test your schema before moving to embedded devices. -Examples of using `coap` with LightDB are [found in the Cloud documentation](/data-management/stored-data/lightdb-state/read-write-data). +Examples of using `coap` with LightDB are [found in the Cloud documentation](/data-handling/stored-data/lightdb-state/read-write-data). diff --git a/docs/firmware/zephyr-device-sdk/light-db-stream/README.md b/docs/firmware/zephyr-device-sdk/light-db-stream/README.md index 1be694e0..a33b4963 100644 --- a/docs/firmware/zephyr-device-sdk/light-db-stream/README.md +++ b/docs/firmware/zephyr-device-sdk/light-db-stream/README.md @@ -7,4 +7,4 @@ LightDB Stream is a persistent database service hosted by Golioth. The LightDB S ![Console](../assets/lightDB-stream-svg-a4.svg) -Checkout the [LightDB Stream](https://docs.golioth.io/data-management/lightdb-stream/) guide for a walkthrough of the sample demonstrating the firmware calls used to interact with the Golioth LightDB Stream service. +Checkout the [LightDB Stream](https://docs.golioth.io/data-handling/lightdb-stream/) guide for a walkthrough of the sample demonstrating the firmware calls used to interact with the Golioth LightDB Stream service. diff --git a/docs/reference/2-protocols/1-coap/3-lightdb.md b/docs/reference/2-protocols/1-coap/3-lightdb.md index bab76d08..72a76971 100644 --- a/docs/reference/2-protocols/1-coap/3-lightdb.md +++ b/docs/reference/2-protocols/1-coap/3-lightdb.md @@ -3,11 +3,11 @@ id: lightdb title: LightDB --- -[LightDB Device Service](/data-management/stored-data/lightdb-state) definitions over CoAP. +[LightDB Device Service](/data-handling/stored-data/lightdb-state) definitions over CoAP. How to use guides: -- [Read Write Data](/data-management/stored-data/lightdb-state/read-write-data) +- [Read Write Data](/data-handling/stored-data/lightdb-state/read-write-data) ### Interface diff --git a/docs/reference/2-protocols/1-coap/4-lightdb-stream.md b/docs/reference/2-protocols/1-coap/4-lightdb-stream.md index 54ebac6e..9a35c8f3 100644 --- a/docs/reference/2-protocols/1-coap/4-lightdb-stream.md +++ b/docs/reference/2-protocols/1-coap/4-lightdb-stream.md @@ -3,11 +3,11 @@ id: lightdb-stream title: LightDB Stream --- -[LightDB Stream Device Service](/data-management/stored-data/lightdb-stream) definitions over CoAP. +[LightDB Stream Device Service](/data-handling/stored-data/lightdb-stream) definitions over CoAP. How to use guides: -- [Sending Data](/data-management/stored-data/lightdb-stream/sending-data) +- [Sending Data](/data-handling/stored-data/lightdb-stream/sending-data) ### Interface diff --git a/docs/reference/2-protocols/1-coap/7-limits.md b/docs/reference/2-protocols/1-coap/7-limits.md index 360a9a8e..dc4e65eb 100644 --- a/docs/reference/2-protocols/1-coap/7-limits.md +++ b/docs/reference/2-protocols/1-coap/7-limits.md @@ -11,7 +11,7 @@ Golioth servers enforce the following limit on CoAP requests: When passing frequent readings from a single device to Golioth (greater than 1 Hz) we recommend sending in batches. As noted for the [LightDB Stream -service](/data-management/stored-data/lightdb-stream/sending-data), your device +service](/data-handling/stored-data/lightdb-stream/sending-data), your device can add timestamps to data packets by using `t`, `ts`, or `time` as the key. The Golioth LightDB Stream service will use the timestamp for the database entry instead of the time received. diff --git a/docs/reference/4-websocket/3-Endpoints/1-lightdb.md b/docs/reference/4-websocket/3-Endpoints/1-lightdb.md index 6384b3c1..b1f5b104 100644 --- a/docs/reference/4-websocket/3-Endpoints/1-lightdb.md +++ b/docs/reference/4-websocket/3-Endpoints/1-lightdb.md @@ -3,7 +3,7 @@ id: lightdb title: LightDB --- -[LightDB Device Service](/data-management/stored-data/lightdb-state) definitions. +[LightDB Device Service](/data-handling/stored-data/lightdb-state) definitions. Real-time endpoint to listen to any changes in a device state path. diff --git a/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md b/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md index 4f048187..dd09b593 100644 --- a/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md +++ b/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md @@ -3,7 +3,7 @@ id: lightdb-stream title: LightDB Stream --- -[LightDB Stream Device Service](/data-management/stored-data/lightdb-stream) definitions. +[LightDB Stream Device Service](/data-handling/stored-data/lightdb-stream) definitions. Real-time endpoint to listen to a device's data stream as it arrives at the Golioth Cloud. diff --git a/docusaurus.config.js b/docusaurus.config.js index 72084dd4..ac6d5138 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -40,9 +40,9 @@ module.exports = { position: "left", }, { - to: "data-management", - activeBasePath: "data-management", - label: "Data Management", + to: "data-handling", + activeBasePath: "data-handling", + label: "Data Handling", position: "left", }, { diff --git a/sidebars.js b/sidebars.js index ec9ab0b9..bccd4dde 100644 --- a/sidebars.js +++ b/sidebars.js @@ -40,7 +40,7 @@ const devicemanagement = [ const datamanagement = [ { type: 'autogenerated', - dirName: 'data-management', + dirName: 'data-handling', }, ] From 44d9083a663753bed4b1dd67450634d43370a241 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Mon, 27 Nov 2023 20:34:17 -0600 Subject: [PATCH 16/88] landing-page: fix link to data-handling When mergin multiple PRs this link did not get updated to the new data-handling location. Signed-off-by: Mike Szczys --- docs/landing_page.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/landing_page.md b/docs/landing_page.md index c1f8c822..08f7935d 100644 --- a/docs/landing_page.md +++ b/docs/landing_page.md @@ -72,7 +72,7 @@ us](mailto:hello@golioth.io). Here you will find details about rolling out over-the-air (OTA) firmware updates, accessing device logs, changing device settings for your fleet, and issuing remote procedure calls (RPC). -- [Data Handling](/data-management) - These are "server side" features of the +- [Data Handling](/data-handling) - These are "server side" features of the Golioth platform that deal with data moving to and from our IoT fleet. Here you will find details about accessing stored data from your devices, and options for routing that data to other platforms, whether that's your own From 05469e74c2fc3f36e1720da92820fa8aff5c0f15 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Sat, 25 Nov 2023 19:23:00 -0600 Subject: [PATCH 17/88] lightmode css: fix swagger Authorize dialog Remove swagger-ui styling that placed white text on a light background in the Authorize dialog Signed-off-by: Mike Szczys --- src/css/custom.css | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index df171555..dc1cdb4d 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -103,10 +103,6 @@ button [class^="lightToggleIcon"]:not(:hover) { background-color: unset; } -.swagger-ui code { - color: white; -} - html[data-theme="dark"] { --ifm-color-primary: var(--golioth-color-coral); --ifm-color-primary-dark: #d23c43; From 6453276c9dfefac6e606deb944114138916be34a Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Sat, 25 Nov 2023 20:36:08 -0600 Subject: [PATCH 18/88] css: fix swagger styling * Change order of css include so swagger styles can be overridden * Add css file for fixing swagger-ui styles (especially in dark mode) Signed-off-by: Mike Szczys --- docusaurus.config.js | 3 +- src/css/custom-swagger-ui.css | 105 ++++++++++++++++++++++++++++++++++ src/css/custom.css | 6 +- 3 files changed, 108 insertions(+), 6 deletions(-) create mode 100644 src/css/custom-swagger-ui.css diff --git a/docusaurus.config.js b/docusaurus.config.js index ac6d5138..862b7112 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -178,8 +178,9 @@ module.exports = { // }, theme: { customCss: [ - require.resolve("./src/css/custom.css"), require.resolve("swagger-ui-react/swagger-ui.css"), + require.resolve("./src/css/custom.css"), + require.resolve("./src/css/custom-swagger-ui.css"), ], }, }, diff --git a/src/css/custom-swagger-ui.css b/src/css/custom-swagger-ui.css new file mode 100644 index 00000000..96812d54 --- /dev/null +++ b/src/css/custom-swagger-ui.css @@ -0,0 +1,105 @@ +.swagger-ui pre { + background-color: unset; +} + +.swagger-ui .info a, +html[data-theme="dark"] .swagger-ui .info a { + color: var(--ifm-color-primary); +} + +html[data-theme="dark"] .swagger-ui .info .title, +html[data-theme="dark"] .swagger-ui .info .base-url, +html[data-theme="dark"] .swagger-ui a.nostyle, +html[data-theme="dark"] .swagger-ui [class^="parameter__"], +html[data-theme="dark"] .swagger-ui .prop-format, +html[data-theme="dark"] .swagger-ui table, +html[data-theme="dark"] .swagger-ui .tab, +html[data-theme="dark"] .swagger-ui .tab li, +html[data-theme="dark"] .swagger-ui table thead tr td, +html[data-theme="dark"] .swagger-ui table thead tr th, +html[data-theme="dark"] .swagger-ui .response-col_status, +html[data-theme="dark"] .swagger-ui [class^="responses-"] h4, +html[data-theme="dark"] .swagger-ui [class^="responses-"] h5, +html[data-theme="dark"] .swagger-ui .opblock .opblock-section-header h4, +html[data-theme="dark"] .swagger-ui .opblock .opblock-section-header > label, +html[data-theme="dark"] .swagger-ui label, +html[data-theme="dark"] .swagger-ui .scheme-container .schemes > label , +html[data-theme="dark"] .swagger-ui .scheme-container .schemes > .schemes-server-container > label, +html[data-theme="dark"] .swagger-ui section.models h4, +html[data-theme="dark"] .swagger-ui [class^="model"], +html[data-theme="dark"] .swagger-ui .model .property.primitive, +html[data-theme="dark"] .swagger-ui .model-toggle.collapsed, +html[data-theme="dark"] .swagger-ui .dialog-ux .modal-ux-header h3, +html[data-theme="dark"] .swagger-ui .dialog-ux .modal-ux-content h4, +html[data-theme="dark"] .swagger-ui .dialog-ux .modal-ux-content p, +html[data-theme="dark"] .swagger-ui .errors-wrapper { + color: var(--golioth-color-white); +} + +html[data-theme="dark"] .swagger-ui .scheme-container { + box-shadow: 0 1px 2px 0 rgba(255, 255, 255, .3); +} + +html[data-theme="dark"] .swagger-ui .opblock-tag, +html[data-theme="dark"] .swagger-ui section.models.is-open h4 { + border-bottom: 1px solid rgba(255, 255, 255, .3); +} + +html[data-theme="dark"] .swagger-ui section.models { + border: 1px solid rgba(255, 255, 255, .3); +} + +html[data-theme="dark"] .swagger-ui .dialog-ux .modal-ux { + background-color: var(--golioth-color-cod-gray); +} + +html[data-theme="dark"] .swagger-ui .btn { + color: var(--golioth-color-white); +} + +html[data-theme="dark"] .swagger-ui .parameter__name.required span, +html[data-theme="dark"] .swagger-ui .parameter__name.required::after, +html[data-theme="dark"] .swagger-ui .prop-type { + color: var(--golioth-color-lightning-yellow); +} + +html[data-theme="dark"] .swagger-ui section.models .model-container { + background: rgba(80,227,194,.1); + border: 1px solid #50e3c2; +} + +html[data-theme="dark"] .swagger-ui .opblock-tag svg , +html[data-theme="dark"] .swagger-ui .opblock .opblock-summary svg, +html[data-theme="dark"] .swagger-ui section.models h4 svg, +html[data-theme="dark"] .swagger-ui .model-toggle, +html[data-theme="dark"] .swagger-ui .model-toggle.collapsed { + filter: invert(100%); +} + +/* Don't invert the clipboard icon in dark */ +html[data-theme="dark"] .swagger-ui .opblock .opblock-summary .view-line-link.copy-to-clipboard svg { + filter: unset; +} + +html[data-theme="dark"] .swagger-ui .scheme-container, +html[data-theme="dark"] .swagger-ui .opblock .opblock-section-header { + background-color: unset; +} + +html[data-theme="dark"] .swagger-ui input[type], +html[data-theme="dark"] .swagger-ui textarea .swagger-ui .opblock .opblock-section-header { + color: var(--golioth-color-white); + background-color: var(--golioth-color-cod-gray); +} + +html[data-theme="dark"] .swagger-ui .opblock-body pre.microlight { + background-color: var(--golioth-color-cod-gray) !important; +} + +html[data-theme="dark"] .swagger-ui .loading-container .loading { + filter: invert(100%); +} + +html[data-theme="dark"] .swagger-ui .markdown code, .swagger-ui .renderedMarkdown code { + color: var(--golioth-color-lightning-yellow); +} diff --git a/src/css/custom.css b/src/css/custom.css index dc1cdb4d..79f03362 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -14,7 +14,7 @@ --golioth-color-cod-gray: #1a1a1a; --golioth-color-charcoal: #353535; --golioth-color-concrete: #f2f2f2; - --golioth-color-blac: #000000; + --golioth-color-black: #000000; --golioth-color-white: #ffffff; --ifm-color-primary: var(--golioth-color-coral); @@ -99,10 +99,6 @@ button [class^="lightToggleIcon"]:not(:hover) { padding: 0 var(--ifm-pre-padding); } -.swagger-ui pre { - background-color: unset; -} - html[data-theme="dark"] { --ifm-color-primary: var(--golioth-color-coral); --ifm-color-primary-dark: #d23c43; From 25b5079b92bcbfaf9f5036db348306d65d8ad7d5 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Tue, 28 Nov 2023 09:48:39 -0600 Subject: [PATCH 19/88] css: change code block background for branding Change the codeblock background from the blue tint to use a grey from our new branding colors. Signed-off-by: Mike Szczys --- src/css/custom.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/css/custom.css b/src/css/custom.css index 79f03362..c7292c95 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -92,6 +92,10 @@ button [class^="lightToggleIcon"]:not(:hover) { --ifm-hero-text-color: white; } +pre code { + background-color: var(--golioth-color-cod-gray); +} + .docusaurus-highlight-code-line { background-color: rgb(72, 77, 91); display: block; From c2658775c98dceda383f1b56bf2fc340e1bb619d Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Tue, 21 Nov 2023 17:09:16 -0600 Subject: [PATCH 20/88] getting-started: Use console overview for section Previously, clicking on "Use Golioth Console (GUI)" would fold the section but not load a page. This commit loads the overview when the category is clicked. Signed-off-by: Mike Szczys --- docs/getting-started/2-console/{1-overview.md => README.md} | 1 + 1 file changed, 1 insertion(+) rename docs/getting-started/2-console/{1-overview.md => README.md} (97%) diff --git a/docs/getting-started/2-console/1-overview.md b/docs/getting-started/2-console/README.md similarity index 97% rename from docs/getting-started/2-console/1-overview.md rename to docs/getting-started/2-console/README.md index 105b106a..762af1ff 100644 --- a/docs/getting-started/2-console/1-overview.md +++ b/docs/getting-started/2-console/README.md @@ -2,6 +2,7 @@ id: overview title: Golioth Console Overview slug: /golioth-console +sidebar_position: 1 --- The Golioth Console provides a web-based configuration tool for managing your devices. In this section we will walk through the provisioning process for a device. However, for a wholistic understanding it's good to know that the console is a powerful tool you can use to: From f51ad1c83b970fe3480dce8dfadb1a580f005a2f Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Tue, 21 Nov 2023 17:46:59 -0600 Subject: [PATCH 21/88] getting-started: streamline the web console Getting started is a set of guides that should quickly move the user through to successfully connecting a device. This commit reduces the Golioth Console onboarding to two pages and an overview to help move the process along. Signed-off-by: Mike Szczys --- .../hardware/5-virtual-device/README.md | 2 +- .../2-console/3-manage-devices.md | 27 ++++++++++++++++--- .../2-console/4-authorize-devices.md | 27 ------------------- .../2-console/5-choose-device.md | 9 ------- docs/getting-started/2-console/README.md | 2 +- docs/getting-started/2-console/_category_.yml | 4 +-- .../3-commandline/1-overview.md | 2 +- docs/reference/2-protocols/2-device-auth.md | 5 ++-- 8 files changed, 31 insertions(+), 47 deletions(-) delete mode 100644 docs/getting-started/2-console/4-authorize-devices.md delete mode 100644 docs/getting-started/2-console/5-choose-device.md diff --git a/docs/firmware/hardware/5-virtual-device/README.md b/docs/firmware/hardware/5-virtual-device/README.md index af2b4e60..ff17310b 100644 --- a/docs/firmware/hardware/5-virtual-device/README.md +++ b/docs/firmware/hardware/5-virtual-device/README.md @@ -21,6 +21,6 @@ There are two paths for testing using virtual devices: This guide assumes you have already completed the [Golioth Platform Quickstart](/getting-started). - The `coap` virtual device section requires [the Golioth Command Line Tools](/commandline) -- The QEMU section requires a provisioned device as outlined in [the Golioth Console getting started guide](/golioth-console) +- The QEMU section requires a provisioned device as outlined in [the Golioth Console getting started guide](/getting-started/golioth-console) ::: diff --git a/docs/getting-started/2-console/3-manage-devices.md b/docs/getting-started/2-console/3-manage-devices.md index 9d40bc54..c3a394e3 100644 --- a/docs/getting-started/2-console/3-manage-devices.md +++ b/docs/getting-started/2-console/3-manage-devices.md @@ -1,6 +1,6 @@ --- id: manage-devices -title: Manage Devices +title: Manage Devices and Credentials --- Let's use the Golioth Console to create a new device. @@ -39,9 +39,28 @@ menu. ## New device summary +![New device summary window](../assets/gettingstarted-console-createdevice-confirmation.png) + After clicking save, your device is created and a new device summary is displayed. -![New device summary window](../assets/gettingstarted-console-createdevice-confirmation.png) +## Retrieving Device Credentials + +![Device details now includes device credentials](../assets/gettingstarted-console-deviceview-credentialspanel.png) + +To access device credentials, select the Credentials tab from the device view +in the Golioth Console. The PSK-ID and PSK (the Identity and the Pre Shared +Key) are what your device needs to authenticate and connect to the Golioth +Cloud. You can always return to this panel in the device details to retrieve +these values. + +:::tip Golioth Supports Certificate Authentication +When getting to know Golioth, Pre-Shared Key (PSK) authentication is +demonstrated as a happy path to get a demo device running right away. However, +Golioth supports and recommends using X509 certificate (ECDSA) for your +production devices. + +* Firmware Section: [Certificate + Authentication](/firmware/golioth-firmware-sdk/authentication/certificate-auth) +::: -Click the Go to Device Management button and continue to the next page of this -guide. +Congratulations, you're ready to move on to selecting hardware! diff --git a/docs/getting-started/2-console/4-authorize-devices.md b/docs/getting-started/2-console/4-authorize-devices.md deleted file mode 100644 index 336e6627..00000000 --- a/docs/getting-started/2-console/4-authorize-devices.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -id: authorize-devices -title: Authorize Devices ---- - -To connect to the Golioth Cloud, we need to pass the newly created credentials -to the hardware device. - -### Retrieving Device Credentials - -![Device details now includes device credentials](../assets/gettingstarted-console-deviceview-credentialspanel.png) - -To access device credentials, select the Credentials tab from the device view -in the Golioth Console. The PSK-ID and PSK (the Identity and the Pre Shared -Key) are what your device needs to authenticate and connect to the Golioth -Cloud. You can always return to this panel in the device details to retrieve -these values. - -:::note -When a device credential ID is automatically assigned it follows this -format: GMT timestamp, the name of the device, and the name of the project. If -you prefer shorter device IDs, you may want to choose the ID yourself. By -convention, all device credential IDs will end with the `@` symbol followed by -the project name. -::: - -Congratulations, you're ready to move on to selecting hardware! diff --git a/docs/getting-started/2-console/5-choose-device.md b/docs/getting-started/2-console/5-choose-device.md deleted file mode 100644 index 668c172e..00000000 --- a/docs/getting-started/2-console/5-choose-device.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -id: choose-device -title: Choose which device to run on -pagination_next: null ---- - -import ChooseDevice from '/docs/partials-common/getting-started_choose-device.md' - - diff --git a/docs/getting-started/2-console/README.md b/docs/getting-started/2-console/README.md index 762af1ff..c6f74a5e 100644 --- a/docs/getting-started/2-console/README.md +++ b/docs/getting-started/2-console/README.md @@ -1,7 +1,7 @@ --- id: overview title: Golioth Console Overview -slug: /golioth-console +slug: /getting-started/golioth-console sidebar_position: 1 --- diff --git a/docs/getting-started/2-console/_category_.yml b/docs/getting-started/2-console/_category_.yml index 94c79ef6..f6f2bfd0 100644 --- a/docs/getting-started/2-console/_category_.yml +++ b/docs/getting-started/2-console/_category_.yml @@ -1,3 +1,3 @@ -label: 'Use Golioth Console (GUI)' +label: 'Golioth Web Console' collapsible: true # make the category collapsible -collapsed: false # keep the category open by default \ No newline at end of file +collapsed: false # keep the category open by default diff --git a/docs/getting-started/3-commandline/1-overview.md b/docs/getting-started/3-commandline/1-overview.md index 55e51b6b..71735913 100644 --- a/docs/getting-started/3-commandline/1-overview.md +++ b/docs/getting-started/3-commandline/1-overview.md @@ -5,7 +5,7 @@ slug: /commandline --- :::caution -This section is for medium and advanced users. For beginners we recommend first completing the [Golioth Console (GUI)](../2-console/1-overview.md) guide and the continue on to [choose your hardware device](../2-console/5-choose-device.md). +This section is for medium and advanced users. For beginners we recommend first completing the [Golioth Console (GUI)](/getting-started/golioth-console) guide. ::: The `goliothctl` allows you to provision and manage your devices from the command line. This portion of the Getting Started guide will demonstrate: diff --git a/docs/reference/2-protocols/2-device-auth.md b/docs/reference/2-protocols/2-device-auth.md index 894262d3..1cc456df 100644 --- a/docs/reference/2-protocols/2-device-auth.md +++ b/docs/reference/2-protocols/2-device-auth.md @@ -32,8 +32,9 @@ This can be as simple as generating a pre-shared key on the Golioth console, and See the getting started guide: -* Golioth Console: [authorize PSK devices](/getting-started/console/authorize-devices). -* Command line Tools: [authorize PSK devices](/getting-started/3-commandline/6-authorize-devices.md). +* Golioth Console: [authorize PSK + devices](/getting-started/console/manage-devices). +* Command line Tools: [authorize PSK devices](/getting-started/commandline/authorize-devices). ## Client Certificate Authentication From 149cb329f08503068b8af7052d9870a1d12330bb Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Wed, 22 Nov 2023 11:02:44 -0600 Subject: [PATCH 22/88] move CLI walkthrough to reference section The Web Console is our recommended happy path and should be the focus of the Getting Started section. This commit moves the Command Line Tools getting started section into a Tutorial item in Reference->Command Line Tools. Signed-off-by: Mike Szczys --- .../3-simulating-devices-coap.md | 2 +- .../firmware/hardware/5-virtual-device/README.md | 2 +- docs/getting-started/1-overview.md | 5 ++++- docs/getting-started/2-console/README.md | 4 +++- .../getting-started/3-commandline/_category_.yml | 3 --- docs/partials-common/prerequisites-device.md | 16 +++++++++++----- .../prerequisites-platform-setup.md | 9 ++++++--- docs/reference/2-protocols/2-device-auth.md | 2 +- .../3-tutorial}/2-installing/1-packages.md | 6 +++++- .../3-tutorial}/2-installing/2-binaries.md | 0 .../3-tutorial}/2-installing/_category_.yml | 0 .../3-tutorial}/3-authentication.md | 0 .../3-tutorial}/4-create-project.md | 0 .../3-tutorial}/5-manage-devices.md | 0 .../3-tutorial}/6-authorize-devices.md | 0 .../3-tutorial}/7-choose-device.md | 0 .../5-command-line-tools/3-tutorial/README.md} | 4 ++-- 17 files changed, 34 insertions(+), 19 deletions(-) delete mode 100644 docs/getting-started/3-commandline/_category_.yml rename docs/{getting-started/3-commandline => reference/5-command-line-tools/3-tutorial}/2-installing/1-packages.md (95%) rename docs/{getting-started/3-commandline => reference/5-command-line-tools/3-tutorial}/2-installing/2-binaries.md (100%) rename docs/{getting-started/3-commandline => reference/5-command-line-tools/3-tutorial}/2-installing/_category_.yml (100%) rename docs/{getting-started/3-commandline => reference/5-command-line-tools/3-tutorial}/3-authentication.md (100%) rename docs/{getting-started/3-commandline => reference/5-command-line-tools/3-tutorial}/4-create-project.md (100%) rename docs/{getting-started/3-commandline => reference/5-command-line-tools/3-tutorial}/5-manage-devices.md (100%) rename docs/{getting-started/3-commandline => reference/5-command-line-tools/3-tutorial}/6-authorize-devices.md (100%) rename docs/{getting-started/3-commandline => reference/5-command-line-tools/3-tutorial}/7-choose-device.md (100%) rename docs/{getting-started/3-commandline/1-overview.md => reference/5-command-line-tools/3-tutorial/README.md} (90%) diff --git a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md index ac844429..9aadbf0f 100644 --- a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md +++ b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md @@ -6,7 +6,7 @@ title: Simulating devices with coap command line interface ## Prerequisites :::info -This guide uses `goliothctl` and `coap` which are part of the [Golioth Command Line tools](/commandline) install. +This guide uses `goliothctl` and `coap` which are part of the [Golioth Command Line tools](/reference/command-line-tools/tutorial) install. Checkout our reference section for comprehensive information on [the goliothctl tool](/reference/command-line-tools/goliothctl/goliothctl) and [the coap tool](/reference/command-line-tools/coap/coap). ::: diff --git a/docs/firmware/hardware/5-virtual-device/README.md b/docs/firmware/hardware/5-virtual-device/README.md index ff17310b..4bf6e458 100644 --- a/docs/firmware/hardware/5-virtual-device/README.md +++ b/docs/firmware/hardware/5-virtual-device/README.md @@ -20,7 +20,7 @@ There are two paths for testing using virtual devices: :::caution This guide assumes you have already completed the [Golioth Platform Quickstart](/getting-started). -- The `coap` virtual device section requires [the Golioth Command Line Tools](/commandline) +- The `coap` virtual device section requires [the Golioth Command Line Tools](/reference/command-line-tools/tutorial) - The QEMU section requires a provisioned device as outlined in [the Golioth Console getting started guide](/getting-started/golioth-console) ::: diff --git a/docs/getting-started/1-overview.md b/docs/getting-started/1-overview.md index 4f9982de..c97dcc75 100644 --- a/docs/getting-started/1-overview.md +++ b/docs/getting-started/1-overview.md @@ -14,4 +14,7 @@ Once completed, you can to move on to [the Hardware section](/firmware/hardware/ ![Console](./assets/console.png) -If this your first time trying out Golioth we recommend using [the Golioth Console](https://ole.golioth.io/) which is a web-based tool. However, it is possible to accomplish everything in this guide by following [the Command Line Tools section](3-commandline/1-overview.md). +If this your first time trying out Golioth we recommend using [the Golioth +Console](https://console.golioth.io/) which is a web-based tool. However, it is +possible to accomplish everything in this guide by following [the Command Line +Tools section](/reference/command-line-tools/tutorial). diff --git a/docs/getting-started/2-console/README.md b/docs/getting-started/2-console/README.md index c6f74a5e..6c1cc658 100644 --- a/docs/getting-started/2-console/README.md +++ b/docs/getting-started/2-console/README.md @@ -14,4 +14,6 @@ The Golioth Console provides a web-based configuration tool for managing your de * Manage Over-the-Air (OTA) updates for firmware and other assets * Manage API keys (REST, WebSockets, etc.) -While everything you do in the Console can also be accomplished via [the Golioth Command Line Tools](../commandline), we recommend beginning with the console. +While everything you do in the Console can also be accomplished via [the Golioth +Command Line Tools](/reference/command-line-tools/tutorial), we recommend +beginning with the console. diff --git a/docs/getting-started/3-commandline/_category_.yml b/docs/getting-started/3-commandline/_category_.yml deleted file mode 100644 index 6cefe299..00000000 --- a/docs/getting-started/3-commandline/_category_.yml +++ /dev/null @@ -1,3 +0,0 @@ -label: 'Use Command Line Tools' -collapsible: true # make the category collapsible -collapsed: true # keep the category open by default \ No newline at end of file diff --git a/docs/partials-common/prerequisites-device.md b/docs/partials-common/prerequisites-device.md index 3092f395..e50e6aa9 100644 --- a/docs/partials-common/prerequisites-device.md +++ b/docs/partials-common/prerequisites-device.md @@ -1,8 +1,14 @@ ### Prerequisites - `goliothctl` and `west` installed -- Authenticated with Golioth - see [Authentication](/getting-started/3-commandline/3-authentication.md) -- Have a project - see [Create a Project](/getting-started/3-commandline/4-create-project.md) -- Have a provisioned device and credential for it - see [Authorizing Devices](/getting-started/3-commandline/6-authorize-devices.md) -- The `golioth/zephyr` codebase set up on your machine. See the [Set up Zephyr](/firmware/hardware/2-esp32/2-zephyr-quickstart/2-set-up-zephyr.md) page for the ESP32. -- A toolchain installed. In this guide, the toolchain for the ESP32 will be used. +- Authenticated with Golioth - see + [Authentication](/reference/command-line-tools/tutorial/authentication) +- Have a project - see [Create a + Project](/reference/command-line-tools/tutorial/create-project) +- Have a provisioned device and credential for it - see [Authorizing + Devices](/reference/command-line-tools/tutorial/authorize-devices) +- The `golioth/zephyr` codebase set up on your machine. See the [Set up + Zephyr](/firmware/hardware/esp32/zephyr-quickstart/set-up-zephyr) page for the + ESP32. +- A toolchain installed. In this guide, the toolchain for the ESP32 will be + used. diff --git a/docs/partials-common/prerequisites-platform-setup.md b/docs/partials-common/prerequisites-platform-setup.md index 0bfc6664..ab159325 100644 --- a/docs/partials-common/prerequisites-platform-setup.md +++ b/docs/partials-common/prerequisites-platform-setup.md @@ -1,6 +1,9 @@ ### Prerequisites - `goliothctl` and `west` installed -- Authenticated with Golioth - see [Authentication](/getting-started/3-commandline/3-authentication.md) -- Have a project - see [Create a Project](/getting-started/3-commandline/4-create-project.md) -- Have a provisioned device and credential for it - see [Authorizing Devices](/getting-started/3-commandline/5-manage-devices.md) +- Authenticated with Golioth - see + [Authentication](/reference/command-line-tools/tutorial/authentication) +- Have a project - see [Create a + Project](/reference/command-line-tools/tutorial/create-project) +- Have a provisioned device and credential for it - see [Authorizing + Devices](/reference/command-line-tools/tutorial/manage-devices) diff --git a/docs/reference/2-protocols/2-device-auth.md b/docs/reference/2-protocols/2-device-auth.md index 1cc456df..a399ddb5 100644 --- a/docs/reference/2-protocols/2-device-auth.md +++ b/docs/reference/2-protocols/2-device-auth.md @@ -34,7 +34,7 @@ See the getting started guide: * Golioth Console: [authorize PSK devices](/getting-started/console/manage-devices). -* Command line Tools: [authorize PSK devices](/getting-started/commandline/authorize-devices). +* Command line Tools: [authorize PSK devices](/reference/command-line-tools/tutorial/authorize-devices). ## Client Certificate Authentication diff --git a/docs/getting-started/3-commandline/2-installing/1-packages.md b/docs/reference/5-command-line-tools/3-tutorial/2-installing/1-packages.md similarity index 95% rename from docs/getting-started/3-commandline/2-installing/1-packages.md rename to docs/reference/5-command-line-tools/3-tutorial/2-installing/1-packages.md index 4ec77774..434c4d45 100644 --- a/docs/getting-started/3-commandline/2-installing/1-packages.md +++ b/docs/reference/5-command-line-tools/3-tutorial/2-installing/1-packages.md @@ -6,7 +6,11 @@ title: OS Packages import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Golioth's command line interface (CLI) tools are available from a variety of package managers. If you OS is not supported by the options below, [binary downloads are available](/getting-started/commandline/installing/binaries) in the next docs page. +Golioth's command line interface (CLI) tools are available from a variety of +package managers. If you OS is not supported by the options below, [binary +downloads are +available](/reference/command-line-tools/tutorial/installing/binaries) in the +next docs page. The available CLIs are: diff --git a/docs/getting-started/3-commandline/2-installing/2-binaries.md b/docs/reference/5-command-line-tools/3-tutorial/2-installing/2-binaries.md similarity index 100% rename from docs/getting-started/3-commandline/2-installing/2-binaries.md rename to docs/reference/5-command-line-tools/3-tutorial/2-installing/2-binaries.md diff --git a/docs/getting-started/3-commandline/2-installing/_category_.yml b/docs/reference/5-command-line-tools/3-tutorial/2-installing/_category_.yml similarity index 100% rename from docs/getting-started/3-commandline/2-installing/_category_.yml rename to docs/reference/5-command-line-tools/3-tutorial/2-installing/_category_.yml diff --git a/docs/getting-started/3-commandline/3-authentication.md b/docs/reference/5-command-line-tools/3-tutorial/3-authentication.md similarity index 100% rename from docs/getting-started/3-commandline/3-authentication.md rename to docs/reference/5-command-line-tools/3-tutorial/3-authentication.md diff --git a/docs/getting-started/3-commandline/4-create-project.md b/docs/reference/5-command-line-tools/3-tutorial/4-create-project.md similarity index 100% rename from docs/getting-started/3-commandline/4-create-project.md rename to docs/reference/5-command-line-tools/3-tutorial/4-create-project.md diff --git a/docs/getting-started/3-commandline/5-manage-devices.md b/docs/reference/5-command-line-tools/3-tutorial/5-manage-devices.md similarity index 100% rename from docs/getting-started/3-commandline/5-manage-devices.md rename to docs/reference/5-command-line-tools/3-tutorial/5-manage-devices.md diff --git a/docs/getting-started/3-commandline/6-authorize-devices.md b/docs/reference/5-command-line-tools/3-tutorial/6-authorize-devices.md similarity index 100% rename from docs/getting-started/3-commandline/6-authorize-devices.md rename to docs/reference/5-command-line-tools/3-tutorial/6-authorize-devices.md diff --git a/docs/getting-started/3-commandline/7-choose-device.md b/docs/reference/5-command-line-tools/3-tutorial/7-choose-device.md similarity index 100% rename from docs/getting-started/3-commandline/7-choose-device.md rename to docs/reference/5-command-line-tools/3-tutorial/7-choose-device.md diff --git a/docs/getting-started/3-commandline/1-overview.md b/docs/reference/5-command-line-tools/3-tutorial/README.md similarity index 90% rename from docs/getting-started/3-commandline/1-overview.md rename to docs/reference/5-command-line-tools/3-tutorial/README.md index 71735913..2aa9feb7 100644 --- a/docs/getting-started/3-commandline/1-overview.md +++ b/docs/reference/5-command-line-tools/3-tutorial/README.md @@ -1,7 +1,7 @@ --- id: overview -title: Golioth Command Line Tools -slug: /commandline +title: CLI Tutorial +sidebar_position: 3 --- :::caution From 9d06ac18a18e4559f539d5dde48c15471ec8b8b4 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Wed, 22 Nov 2023 17:12:59 -0600 Subject: [PATCH 23/88] getting started: add Device Examples section Add a rudimentary set of Device Examples guides to the Getting Started section. These need fleshing out, but will walk user through running precompiled binaries and compiling example apps. Signed-off-by: Mike Szczys --- .../1-precompiled-binaries/README.md | 20 +++++++++++++ .../2-compile-example-code/README.md | 29 +++++++++++++++++++ .../3-device-examples/README.md | 24 +++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 docs/getting-started/3-device-examples/1-precompiled-binaries/README.md create mode 100644 docs/getting-started/3-device-examples/2-compile-example-code/README.md create mode 100644 docs/getting-started/3-device-examples/README.md diff --git a/docs/getting-started/3-device-examples/1-precompiled-binaries/README.md b/docs/getting-started/3-device-examples/1-precompiled-binaries/README.md new file mode 100644 index 00000000..5d66d89a --- /dev/null +++ b/docs/getting-started/3-device-examples/1-precompiled-binaries/README.md @@ -0,0 +1,20 @@ +--- +title: Running Pre-compiled Binaries +sidebar_position: 1 +description: Try Golioth without needing to compile +--- + +Golioth currently offers pre-compiled binaries for three different devices: + +* Nordic Thingy:91 +* Nordic nRF9160 DK +* Nordic nRF7002 DK + +:::tip There are many other options + +If you do not have one of these devices available, you can still run Golioth +example code by compiling it yourself. Please see the [Compiling Example +Code](/getting-started/device-examples/compile-example-code) section of the +Getting Started guide. + +::: diff --git a/docs/getting-started/3-device-examples/2-compile-example-code/README.md b/docs/getting-started/3-device-examples/2-compile-example-code/README.md new file mode 100644 index 00000000..06bf2051 --- /dev/null +++ b/docs/getting-started/3-device-examples/2-compile-example-code/README.md @@ -0,0 +1,29 @@ +--- +title: Compiling Example Code +sidebar_position: 2 +description: | + Compile our well-tested example code for your favorite embedded device. +--- + +Golioth will work with a vast number of different microcontrollers. This section +will guide you through the process of compiling samples from our device SDKs to +run on your chosen hardware. + +Select your desired platform to build example code + +* Zephyr RTOS +* ESP-IDF +* ModusToolbox™ + +:::info Hardware we continuously verify + +Golioth maintains a special level of support for a number of different +development boards using Hardware-in-the-Loop testing. You will find a fast path +to success by testing Golioth using one of these boards: + +* Espressif ESP32-devkitc/ESP32S3-devkitc/ESP32C3-devkitm +* Nordic nRF9160DK +* Nordic nRF52840 + ESP32 (AT Modem) +* NXP mimxrt1024-evk + +::: diff --git a/docs/getting-started/3-device-examples/README.md b/docs/getting-started/3-device-examples/README.md new file mode 100644 index 00000000..53c61810 --- /dev/null +++ b/docs/getting-started/3-device-examples/README.md @@ -0,0 +1,24 @@ +--- +title: Device Examples +sidebar_position: 3 +--- + +# Run Example Code on Your Hardware + +Golioth works on literally hundreds of devices. + +If your target microcontroller can run Zephyr, ESP-IDF, or ModusToolbox™, +it will work well with Golioth. Even if you need a device that doesn't work on +any of these platforms, we have [an SDK porting +guide](https://github.com/golioth/golioth-firmware-sdk/blob/main/docs/Porting_Guide.md) +you can use to add support. + +However, we know you want to take Golioth for a test-drive right now. And that's +no problem. We recommend you try out some of our sample code. There are two +options for this, you can run a pre-compiled binary to add a device to your +Golioth fleet, or compile one of the many sample applications in our device +SDKs. + +import DocCardList from '@theme/DocCardList'; + + From 89a73c32d5d09bc1e38a266e60d3440a27b8456d Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Tue, 28 Nov 2023 11:55:22 -0600 Subject: [PATCH 24/88] workflow: add robots.txt to dev deploy Add robot.txt when docs.golioth.dev is deployed so that search engines will not index the preview site. Signed-off-by: Mike Szczys --- .github/workflows/firebase-hosting-merge-develop.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/firebase-hosting-merge-develop.yml b/.github/workflows/firebase-hosting-merge-develop.yml index d78e8deb..4b08ae92 100644 --- a/.github/workflows/firebase-hosting-merge-develop.yml +++ b/.github/workflows/firebase-hosting-merge-develop.yml @@ -14,7 +14,10 @@ jobs: - uses: actions/setup-node@v3 with: node-version: 20.9.0 - - run: npm install && npm run build:dev + - name: Build Docusaurus + run: npm install && npm run build:dev + - name: Add robots.txt for Dev site only + run: echo -e ${{ format('User-agent{0} *\\nDisallow{1} /', ':', ':') }} > build/robots.txt - uses: FirebaseExtended/action-hosting-deploy@v0 with: repoToken: '${{ secrets.GITHUB_TOKEN }}' From 5c0adc4dfbed85b8f93c8ba18394892754c47acc Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Thu, 30 Nov 2023 17:01:42 -0600 Subject: [PATCH 25/88] css: mode dark definitions up to top Group the dark mode color definitions up along with the rest of the color definitions. Signed-off-by: Mike Szczys --- src/css/custom.css | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index c7292c95..687cb137 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -38,6 +38,20 @@ hue-rotate(223deg) brightness(104%) contrast(98%); } +html[data-theme="dark"] { + --ifm-color-primary: var(--golioth-color-coral); + --ifm-color-primary-dark: #d23c43; + --ifm-color-primary-darker: #ae262d; + --ifm-color-primary-darkest: #540c0f; + --ifm-color-primary-light: #ff858b; + --ifm-color-primary-lighter: #ffaeb2; + --ifm-color-primary-lightest: #ffd1d3; + --ifm-background-color: var(--golioth-color-mine-shaft); + --ifm-footer-color: var(--golioth-color-cod-gray); + --ifm-footer-title-color: var(--golioth-color-cod-gray); + --ifm-footer-link-color: var(--golioth-color-cod-gray); +} + @font-face { font-family: "Akkurat"; src: url("/fonts/AkkuratLLWeb-Regular.woff2"); @@ -103,20 +117,6 @@ pre code { padding: 0 var(--ifm-pre-padding); } -html[data-theme="dark"] { - --ifm-color-primary: var(--golioth-color-coral); - --ifm-color-primary-dark: #d23c43; - --ifm-color-primary-darker: #ae262d; - --ifm-color-primary-darkest: #540c0f; - --ifm-color-primary-light: #ff858b; - --ifm-color-primary-lighter: #ffaeb2; - --ifm-color-primary-lightest: #ffd1d3; - --ifm-background-color: var(--golioth-color-mine-shaft); - --ifm-footer-color: var(--golioth-color-cod-gray); - --ifm-footer-title-color: var(--golioth-color-cod-gray); - --ifm-footer-link-color: var(--golioth-color-cod-gray); -} - .image-flex-container { display: flex; flex-direction: row; From 41ced5bfbfc13e3684c0dea41534f877beaf9bd5 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Thu, 30 Nov 2023 17:08:18 -0600 Subject: [PATCH 26/88] remove: old index page and styling Remove styling for old index page that is no longer used. Signed-off-by: Mike Szczys --- src/css/custom.css | 12 ----- src/pages/old_index.js | 103 ------------------------------------ src/pages/styles.module.css | 37 ------------- 3 files changed, 152 deletions(-) delete mode 100644 src/pages/old_index.js delete mode 100644 src/pages/styles.module.css diff --git a/src/css/custom.css b/src/css/custom.css index 687cb137..e444d40e 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -57,14 +57,6 @@ html[data-theme="dark"] { src: url("/fonts/AkkuratLLWeb-Regular.woff2"); } -.hero { - background-color: var(--golioth-color-cod-gray); -} - -.heroLogo { - width: 300px; -} - .footer { background: var(--golioth-color-cod-gray); --ifm-footer-color: var(--golioth-color-white); @@ -102,10 +94,6 @@ button [class^="lightToggleIcon"]:not(:hover) { color: white; } -.hero--primary { - --ifm-hero-text-color: white; -} - pre code { background-color: var(--golioth-color-cod-gray); } diff --git a/src/pages/old_index.js b/src/pages/old_index.js deleted file mode 100644 index e09d52f9..00000000 --- a/src/pages/old_index.js +++ /dev/null @@ -1,103 +0,0 @@ -import React from "react"; -import clsx from "clsx"; -import Layout from "@theme/Layout"; -import Link from "@docusaurus/Link"; -import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; -import useBaseUrl from "@docusaurus/useBaseUrl"; -import styles from "./styles.module.css"; -import LogoImageUrl from "@site/static/img/coral-logo+golioth.png"; - -const features = [ - { - title: "You Provide the Device, We Provide the Cloud", - //imageUrl: 'img/undraw_docusaurus_mountain.svg', - description: ( - <> - Golioth makes it easy to get started with IoT projects. The Golioth SDK - is built on top of popular RTOSes like Zephyr. Include Golioth features - at compile time and your device gets advanced communiation capabilities. - - ), - }, - { - title: "Focus on What Matters", - //imageUrl: 'img/undraw_docusaurus_tree.svg', - description: ( - <> - The Golioth SDK includes services like Over the Air Updates, Logging, - Data Fowarding and Device Management. Now that cloud communications are - taken care of, you can just on the unique features of your product. - - ), - }, - { - title: "Standard Protocols", - //imageUrl: 'img/undraw_docusaurus_react.svg', - description: ( - <> - We use IoT protocols that you already know and love like CoAP, MQTT and - LWM2M. The resulting devices are more robust, reliable, and reach - production sooner. - - ), - }, -]; - -function Feature({ imageUrl, title, description }) { - const imgUrl = useBaseUrl(imageUrl); - return ( -

- {imgUrl && ( -
- {title} -
- )} -

{title}

-

{description}

-
- ); -} - -function Home() { - const context = useDocusaurusContext(); - const { siteConfig = {} } = context; - return ( - -
-
- -

{siteConfig.tagline}

-
- - Try Our Quickstart Guide - -
-
-
-
- {features && features.length > 0 && ( -
-
-
- {features.map((props, idx) => ( - - ))} -
-
-
- )} -
-
- ); -} - -export default Home; diff --git a/src/pages/styles.module.css b/src/pages/styles.module.css deleted file mode 100644 index c1aa8512..00000000 --- a/src/pages/styles.module.css +++ /dev/null @@ -1,37 +0,0 @@ -/* stylelint-disable docusaurus/copyright-header */ - -/** - * CSS files with the .module.css suffix will be treated as CSS modules - * and scoped locally. - */ - -.heroBanner { - padding: 4rem 0; - text-align: center; - position: relative; - overflow: hidden; -} - -@media screen and (max-width: 966px) { - .heroBanner { - padding: 2rem; - } -} - -.buttons { - display: flex; - align-items: center; - justify-content: center; -} - -.features { - display: flex; - align-items: center; - padding: 2rem 0; - width: 100%; -} - -.featureImage { - height: 200px; - width: 200px; -} From 1a6da425ca283ff81c7596305e4640f4d365a393 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Thu, 30 Nov 2023 17:23:48 -0600 Subject: [PATCH 27/88] css: used color instead of image for navbar border Previous branding used an image to generate a gradient on the navbar bottom border. This is not longer needed and can be accomplished with a simple color property. Signed-off-by: Mike Szczys --- src/css/custom.css | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index e444d40e..9fc6fc72 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -78,15 +78,9 @@ html[data-theme="dark"] { } .navbar { + border-color: var(--ifm-color-primary); border-style: solid; - border-image: linear-gradient( - to right, - var(--ifm-color-primary) 0%, - var(--ifm-color-primary) 100% - ) - 1; border-width: 0px 0px 2px 0px; - border-image-width: 2; } .button.button--secondary.button--outline:not(.button--active):not(:hover), From 877938b73be8665b58b841a6a365ce2b249cdbac Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Thu, 30 Nov 2023 19:18:51 -0600 Subject: [PATCH 28/88] css: fix menu and navbar colors * Fix menu colors * Remove old styling that prevented navbar from rendering corretly in light mode. Signed-off-by: Mike Szczys --- src/css/custom.css | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index 9fc6fc72..ebfad350 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -25,11 +25,7 @@ --ifm-color-primary-lighter: #ffaeb2; --ifm-color-primary-lightest: #ffd1d3; --ifm-code-font-size: 95%; - --ifm-navbar-background-color: var(--golioth-color-mine-shaft); - --ifm-navbar-link-color: var(--golioth-color-white); - --ifm-menu-color: var(--golioth-color-white); - --ifm-menu-color-background-active: var(--golioth-color-charcoal); - --ifm-menu-color-background-hover: var(--golioth-color-charcoal); + --ifm-menu-color: var(--ifm-font-color-base); --ifm-footer-color: var(--golioth-color-cod-gray); --ifm-footer-title-color: var(--golioth-color-cod-gray); --ifm-footer-link-color: var(--golioth-color-cod-gray); @@ -71,23 +67,12 @@ html[data-theme="dark"] { --ifm-footer-link-color: var(--golioth-color-white); } -.menu { - color: var(--golioth-color-white); - background-color: var(--golioth-color-mine-shaft); - margin-bottom: 0 !important; -} - .navbar { border-color: var(--ifm-color-primary); border-style: solid; border-width: 0px 0px 2px 0px; } -.button.button--secondary.button--outline:not(.button--active):not(:hover), -button [class^="lightToggleIcon"]:not(:hover) { - color: white; -} - pre code { background-color: var(--golioth-color-cod-gray); } From 6c886b2cfbfc7570bf610c0fd1e3065909a62566 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Thu, 30 Nov 2023 16:47:46 -0600 Subject: [PATCH 29/88] rename data-handling to data-routing Rename this section to reflect our preferred nomenclature. Signed-off-by: Mike Szczys --- .../1-lightdb-state/2-structure-data.md | 0 .../1-lightdb-state/3-read-write-data.md | 0 .../1-lightdb-state/4-simulating-devices.md | 0 .../1-stored-data/1-lightdb-state/README.md | 0 .../1-stored-data/1-lightdb-state/_category_.yml | 0 .../4-lightdb-stream/2-sending-data.md | 0 .../4-lightdb-stream/3-querying-data.md | 0 .../1-stored-data/4-lightdb-stream/README.md | 0 .../1-stored-data/4-lightdb-stream/_category_.yml | 0 .../1-stored-data/README.md | 0 .../1-stored-data/_category_.yml | 0 .../2-output-streams/1-mongo/README.md | 0 .../2-output-streams/1-mongo/_category_.yml | 0 .../1-mongo/assets/add-ip-address.png | Bin .../1-mongo/assets/atlas-connect-button.png | Bin .../1-mongo/assets/atlas-connection-string.png | Bin .../1-mongo/assets/atlas-network-access.png | Bin .../assets/choosing-timeseries-additional-prefs.png | Bin .../1-mongo/assets/create-collection-button.png | Bin .../1-mongo/assets/create-collection-form.png | Bin .../1-mongo/assets/create-outputstream-form.png | Bin .../1-mongo/assets/ip-access-list-entry.png | Bin .../1-mongo/assets/select-outputstream.png | Bin .../1-mongo/assets/timefield-metafield-form.png | Bin .../2-output-streams/2-webhook/README.md | 4 ++-- .../2-output-streams/2-webhook/_category_.yml | 0 .../2-output-streams/3-azure-event-hub/README.md | 4 ++-- .../3-azure-event-hub/_category_.yml | 0 .../2-output-streams/4-aws-sqs/README.md | 4 ++-- .../2-output-streams/4-aws-sqs/_category_.yml | 0 .../2-output-streams/4-aws-sqs/assets/msg-body.png | Bin .../4-aws-sqs/assets/msg-header.png | Bin .../2-output-streams/5-gcp-pubsub/README.md | 2 +- .../2-output-streams/5-gcp-pubsub/_category_.yml | 0 .../5-gcp-pubsub/assets/gcp-created-service-acc.png | Bin .../assets/gcp-detailing-service-acc.png | Bin .../assets/gcp-iam-create-service-acc.png | Bin .../5-gcp-pubsub/assets/gcp-pubsub-topic-name.png | Bin .../5-gcp-pubsub/assets/gcp-pubsub-topics.png | Bin .../golioth-creating-pubsub-output-stream.png | Bin .../assets/golioth-gcp-output-stream.png | Bin .../2-output-streams/6-datacake/README.md | 2 +- .../2-output-streams/6-datacake/_category_.yml | 0 .../2-output-streams/7-ubidots/README.md | 2 +- .../2-output-streams/7-ubidots/_category_.yml | 0 .../2-output-streams/8-influx/README.md | 0 .../2-output-streams/8-influx/_category_.yml | 0 .../8-influx/assets/2023-07-20_15-37.png | Bin .../2-output-streams/8-influx/assets/buckets.png | Bin .../8-influx/assets/cluster-url.png | Bin .../8-influx/assets/create-outputstream-form.png | Bin .../8-influx/assets/generate-token-button.png | Bin .../8-influx/assets/generate-token.png | Bin .../8-influx/assets/load-data-menu.png | Bin .../8-influx/assets/org-settings-menu.png | Bin .../8-influx/assets/select-outputstream.png | Bin .../8-influx/assets/token-create-form.png | Bin .../2-output-streams/9-event-types/2-events.mdx | 0 .../2-output-streams/9-event-types/README.md | 0 .../2-output-streams/9-event-types/_category_.yml | 0 .../2-output-streams/README.md | 0 .../2-output-streams/_category_.yml | 0 .../2-output-streams/messages.json | 0 docs/{data-handling => data-routing}/README.md | 4 ++-- .../output-streams_azure-event-hub-connect.png | Bin .../output-streams_azure-event-hub-send-policy.png | Bin ...output-streams_azure-event-hub-shared-access.png | Bin .../3-simulating-devices-coap.md | 2 +- .../zephyr-device-sdk/light-db-stream/README.md | 10 ++++++++-- docs/landing_page.md | 2 +- docs/reference/2-protocols/1-coap/3-lightdb.md | 4 ++-- .../2-protocols/1-coap/4-lightdb-stream.md | 4 ++-- docs/reference/2-protocols/1-coap/7-limits.md | 2 +- docs/reference/4-websocket/3-Endpoints/1-lightdb.md | 2 +- .../4-websocket/3-Endpoints/2-lightdb-stream.md | 2 +- docusaurus.config.js | 6 +++--- sidebars.js | 2 +- 77 files changed, 32 insertions(+), 26 deletions(-) rename docs/{data-handling => data-routing}/1-stored-data/1-lightdb-state/2-structure-data.md (100%) rename docs/{data-handling => data-routing}/1-stored-data/1-lightdb-state/3-read-write-data.md (100%) rename docs/{data-handling => data-routing}/1-stored-data/1-lightdb-state/4-simulating-devices.md (100%) rename docs/{data-handling => data-routing}/1-stored-data/1-lightdb-state/README.md (100%) rename docs/{data-handling => data-routing}/1-stored-data/1-lightdb-state/_category_.yml (100%) rename docs/{data-handling => data-routing}/1-stored-data/4-lightdb-stream/2-sending-data.md (100%) rename docs/{data-handling => data-routing}/1-stored-data/4-lightdb-stream/3-querying-data.md (100%) rename docs/{data-handling => data-routing}/1-stored-data/4-lightdb-stream/README.md (100%) rename docs/{data-handling => data-routing}/1-stored-data/4-lightdb-stream/_category_.yml (100%) rename docs/{data-handling => data-routing}/1-stored-data/README.md (100%) rename docs/{data-handling => data-routing}/1-stored-data/_category_.yml (100%) rename docs/{data-handling => data-routing}/2-output-streams/1-mongo/README.md (100%) rename docs/{data-handling => data-routing}/2-output-streams/1-mongo/_category_.yml (100%) rename docs/{data-handling => data-routing}/2-output-streams/1-mongo/assets/add-ip-address.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/1-mongo/assets/atlas-connect-button.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/1-mongo/assets/atlas-connection-string.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/1-mongo/assets/atlas-network-access.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/1-mongo/assets/create-collection-button.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/1-mongo/assets/create-collection-form.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/1-mongo/assets/create-outputstream-form.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/1-mongo/assets/ip-access-list-entry.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/1-mongo/assets/select-outputstream.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/1-mongo/assets/timefield-metafield-form.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/2-webhook/README.md (83%) rename docs/{data-handling => data-routing}/2-output-streams/2-webhook/_category_.yml (100%) rename docs/{data-handling => data-routing}/2-output-streams/3-azure-event-hub/README.md (88%) rename docs/{data-handling => data-routing}/2-output-streams/3-azure-event-hub/_category_.yml (100%) rename docs/{data-handling => data-routing}/2-output-streams/4-aws-sqs/README.md (89%) rename docs/{data-handling => data-routing}/2-output-streams/4-aws-sqs/_category_.yml (100%) rename docs/{data-handling => data-routing}/2-output-streams/4-aws-sqs/assets/msg-body.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/4-aws-sqs/assets/msg-header.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/5-gcp-pubsub/README.md (97%) rename docs/{data-handling => data-routing}/2-output-streams/5-gcp-pubsub/_category_.yml (100%) rename docs/{data-handling => data-routing}/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/6-datacake/README.md (97%) rename docs/{data-handling => data-routing}/2-output-streams/6-datacake/_category_.yml (100%) rename docs/{data-handling => data-routing}/2-output-streams/7-ubidots/README.md (97%) rename docs/{data-handling => data-routing}/2-output-streams/7-ubidots/_category_.yml (100%) rename docs/{data-handling => data-routing}/2-output-streams/8-influx/README.md (100%) rename docs/{data-handling => data-routing}/2-output-streams/8-influx/_category_.yml (100%) rename docs/{data-handling => data-routing}/2-output-streams/8-influx/assets/2023-07-20_15-37.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/8-influx/assets/buckets.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/8-influx/assets/cluster-url.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/8-influx/assets/create-outputstream-form.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/8-influx/assets/generate-token-button.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/8-influx/assets/generate-token.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/8-influx/assets/load-data-menu.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/8-influx/assets/org-settings-menu.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/8-influx/assets/select-outputstream.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/8-influx/assets/token-create-form.png (100%) rename docs/{data-handling => data-routing}/2-output-streams/9-event-types/2-events.mdx (100%) rename docs/{data-handling => data-routing}/2-output-streams/9-event-types/README.md (100%) rename docs/{data-handling => data-routing}/2-output-streams/9-event-types/_category_.yml (100%) rename docs/{data-handling => data-routing}/2-output-streams/README.md (100%) rename docs/{data-handling => data-routing}/2-output-streams/_category_.yml (100%) rename docs/{data-handling => data-routing}/2-output-streams/messages.json (100%) rename docs/{data-handling => data-routing}/README.md (85%) rename docs/{data-handling => data-routing}/assets/output-streams_azure-event-hub-connect.png (100%) rename docs/{data-handling => data-routing}/assets/output-streams_azure-event-hub-send-policy.png (100%) rename docs/{data-handling => data-routing}/assets/output-streams_azure-event-hub-shared-access.png (100%) diff --git a/docs/data-handling/1-stored-data/1-lightdb-state/2-structure-data.md b/docs/data-routing/1-stored-data/1-lightdb-state/2-structure-data.md similarity index 100% rename from docs/data-handling/1-stored-data/1-lightdb-state/2-structure-data.md rename to docs/data-routing/1-stored-data/1-lightdb-state/2-structure-data.md diff --git a/docs/data-handling/1-stored-data/1-lightdb-state/3-read-write-data.md b/docs/data-routing/1-stored-data/1-lightdb-state/3-read-write-data.md similarity index 100% rename from docs/data-handling/1-stored-data/1-lightdb-state/3-read-write-data.md rename to docs/data-routing/1-stored-data/1-lightdb-state/3-read-write-data.md diff --git a/docs/data-handling/1-stored-data/1-lightdb-state/4-simulating-devices.md b/docs/data-routing/1-stored-data/1-lightdb-state/4-simulating-devices.md similarity index 100% rename from docs/data-handling/1-stored-data/1-lightdb-state/4-simulating-devices.md rename to docs/data-routing/1-stored-data/1-lightdb-state/4-simulating-devices.md diff --git a/docs/data-handling/1-stored-data/1-lightdb-state/README.md b/docs/data-routing/1-stored-data/1-lightdb-state/README.md similarity index 100% rename from docs/data-handling/1-stored-data/1-lightdb-state/README.md rename to docs/data-routing/1-stored-data/1-lightdb-state/README.md diff --git a/docs/data-handling/1-stored-data/1-lightdb-state/_category_.yml b/docs/data-routing/1-stored-data/1-lightdb-state/_category_.yml similarity index 100% rename from docs/data-handling/1-stored-data/1-lightdb-state/_category_.yml rename to docs/data-routing/1-stored-data/1-lightdb-state/_category_.yml diff --git a/docs/data-handling/1-stored-data/4-lightdb-stream/2-sending-data.md b/docs/data-routing/1-stored-data/4-lightdb-stream/2-sending-data.md similarity index 100% rename from docs/data-handling/1-stored-data/4-lightdb-stream/2-sending-data.md rename to docs/data-routing/1-stored-data/4-lightdb-stream/2-sending-data.md diff --git a/docs/data-handling/1-stored-data/4-lightdb-stream/3-querying-data.md b/docs/data-routing/1-stored-data/4-lightdb-stream/3-querying-data.md similarity index 100% rename from docs/data-handling/1-stored-data/4-lightdb-stream/3-querying-data.md rename to docs/data-routing/1-stored-data/4-lightdb-stream/3-querying-data.md diff --git a/docs/data-handling/1-stored-data/4-lightdb-stream/README.md b/docs/data-routing/1-stored-data/4-lightdb-stream/README.md similarity index 100% rename from docs/data-handling/1-stored-data/4-lightdb-stream/README.md rename to docs/data-routing/1-stored-data/4-lightdb-stream/README.md diff --git a/docs/data-handling/1-stored-data/4-lightdb-stream/_category_.yml b/docs/data-routing/1-stored-data/4-lightdb-stream/_category_.yml similarity index 100% rename from docs/data-handling/1-stored-data/4-lightdb-stream/_category_.yml rename to docs/data-routing/1-stored-data/4-lightdb-stream/_category_.yml diff --git a/docs/data-handling/1-stored-data/README.md b/docs/data-routing/1-stored-data/README.md similarity index 100% rename from docs/data-handling/1-stored-data/README.md rename to docs/data-routing/1-stored-data/README.md diff --git a/docs/data-handling/1-stored-data/_category_.yml b/docs/data-routing/1-stored-data/_category_.yml similarity index 100% rename from docs/data-handling/1-stored-data/_category_.yml rename to docs/data-routing/1-stored-data/_category_.yml diff --git a/docs/data-handling/2-output-streams/1-mongo/README.md b/docs/data-routing/2-output-streams/1-mongo/README.md similarity index 100% rename from docs/data-handling/2-output-streams/1-mongo/README.md rename to docs/data-routing/2-output-streams/1-mongo/README.md diff --git a/docs/data-handling/2-output-streams/1-mongo/_category_.yml b/docs/data-routing/2-output-streams/1-mongo/_category_.yml similarity index 100% rename from docs/data-handling/2-output-streams/1-mongo/_category_.yml rename to docs/data-routing/2-output-streams/1-mongo/_category_.yml diff --git a/docs/data-handling/2-output-streams/1-mongo/assets/add-ip-address.png b/docs/data-routing/2-output-streams/1-mongo/assets/add-ip-address.png similarity index 100% rename from docs/data-handling/2-output-streams/1-mongo/assets/add-ip-address.png rename to docs/data-routing/2-output-streams/1-mongo/assets/add-ip-address.png diff --git a/docs/data-handling/2-output-streams/1-mongo/assets/atlas-connect-button.png b/docs/data-routing/2-output-streams/1-mongo/assets/atlas-connect-button.png similarity index 100% rename from docs/data-handling/2-output-streams/1-mongo/assets/atlas-connect-button.png rename to docs/data-routing/2-output-streams/1-mongo/assets/atlas-connect-button.png diff --git a/docs/data-handling/2-output-streams/1-mongo/assets/atlas-connection-string.png b/docs/data-routing/2-output-streams/1-mongo/assets/atlas-connection-string.png similarity index 100% rename from docs/data-handling/2-output-streams/1-mongo/assets/atlas-connection-string.png rename to docs/data-routing/2-output-streams/1-mongo/assets/atlas-connection-string.png diff --git a/docs/data-handling/2-output-streams/1-mongo/assets/atlas-network-access.png b/docs/data-routing/2-output-streams/1-mongo/assets/atlas-network-access.png similarity index 100% rename from docs/data-handling/2-output-streams/1-mongo/assets/atlas-network-access.png rename to docs/data-routing/2-output-streams/1-mongo/assets/atlas-network-access.png diff --git a/docs/data-handling/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png b/docs/data-routing/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png similarity index 100% rename from docs/data-handling/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png rename to docs/data-routing/2-output-streams/1-mongo/assets/choosing-timeseries-additional-prefs.png diff --git a/docs/data-handling/2-output-streams/1-mongo/assets/create-collection-button.png b/docs/data-routing/2-output-streams/1-mongo/assets/create-collection-button.png similarity index 100% rename from docs/data-handling/2-output-streams/1-mongo/assets/create-collection-button.png rename to docs/data-routing/2-output-streams/1-mongo/assets/create-collection-button.png diff --git a/docs/data-handling/2-output-streams/1-mongo/assets/create-collection-form.png b/docs/data-routing/2-output-streams/1-mongo/assets/create-collection-form.png similarity index 100% rename from docs/data-handling/2-output-streams/1-mongo/assets/create-collection-form.png rename to docs/data-routing/2-output-streams/1-mongo/assets/create-collection-form.png diff --git a/docs/data-handling/2-output-streams/1-mongo/assets/create-outputstream-form.png b/docs/data-routing/2-output-streams/1-mongo/assets/create-outputstream-form.png similarity index 100% rename from docs/data-handling/2-output-streams/1-mongo/assets/create-outputstream-form.png rename to docs/data-routing/2-output-streams/1-mongo/assets/create-outputstream-form.png diff --git a/docs/data-handling/2-output-streams/1-mongo/assets/ip-access-list-entry.png b/docs/data-routing/2-output-streams/1-mongo/assets/ip-access-list-entry.png similarity index 100% rename from docs/data-handling/2-output-streams/1-mongo/assets/ip-access-list-entry.png rename to docs/data-routing/2-output-streams/1-mongo/assets/ip-access-list-entry.png diff --git a/docs/data-handling/2-output-streams/1-mongo/assets/select-outputstream.png b/docs/data-routing/2-output-streams/1-mongo/assets/select-outputstream.png similarity index 100% rename from docs/data-handling/2-output-streams/1-mongo/assets/select-outputstream.png rename to docs/data-routing/2-output-streams/1-mongo/assets/select-outputstream.png diff --git a/docs/data-handling/2-output-streams/1-mongo/assets/timefield-metafield-form.png b/docs/data-routing/2-output-streams/1-mongo/assets/timefield-metafield-form.png similarity index 100% rename from docs/data-handling/2-output-streams/1-mongo/assets/timefield-metafield-form.png rename to docs/data-routing/2-output-streams/1-mongo/assets/timefield-metafield-form.png diff --git a/docs/data-handling/2-output-streams/2-webhook/README.md b/docs/data-routing/2-output-streams/2-webhook/README.md similarity index 83% rename from docs/data-handling/2-output-streams/2-webhook/README.md rename to docs/data-routing/2-output-streams/2-webhook/README.md index 2026f9c9..7e089758 100644 --- a/docs/data-handling/2-output-streams/2-webhook/README.md +++ b/docs/data-routing/2-output-streams/2-webhook/README.md @@ -15,9 +15,9 @@ For each Output Stream type, there is a set of specify attributes. Here are the ### Example -As mentioned on [Output Streams Overview](/data-handling/output-streams), events are sent using the [Cloud Events](https://cloudevents.io) format. For Webhooks specifically, some metadata of the event are sent as HTTP headers. +As mentioned on [Output Streams Overview](/data-routing/output-streams), events are sent using the [Cloud Events](https://cloudevents.io) format. For Webhooks specifically, some metadata of the event are sent as HTTP headers. -Here is an example of an event arriving on a webhook. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/data-handling/output-streams/event-types/events)). +Here is an example of an event arriving on a webhook. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/data-routing/output-streams/event-types/events)). ``` POST {your-uri-path} HTTP/1.1 diff --git a/docs/data-handling/2-output-streams/2-webhook/_category_.yml b/docs/data-routing/2-output-streams/2-webhook/_category_.yml similarity index 100% rename from docs/data-handling/2-output-streams/2-webhook/_category_.yml rename to docs/data-routing/2-output-streams/2-webhook/_category_.yml diff --git a/docs/data-handling/2-output-streams/3-azure-event-hub/README.md b/docs/data-routing/2-output-streams/3-azure-event-hub/README.md similarity index 88% rename from docs/data-handling/2-output-streams/3-azure-event-hub/README.md rename to docs/data-routing/2-output-streams/3-azure-event-hub/README.md index b2df690d..0da4c3d6 100644 --- a/docs/data-handling/2-output-streams/3-azure-event-hub/README.md +++ b/docs/data-routing/2-output-streams/3-azure-event-hub/README.md @@ -31,9 +31,9 @@ To use this integration, you need to create an Event Hub on Azure and get the co ### Example -As mentioned on [Output Streams Overview](/data-handling/output-streams), events are sent using [Cloud Events](https://cloudevents.io) format. For Azure Event Hub, some metadata of the event are sent together with the message body. +As mentioned on [Output Streams Overview](/data-routing/output-streams), events are sent using [Cloud Events](https://cloudevents.io) format. For Azure Event Hub, some metadata of the event are sent together with the message body. -Here is an example of an event arriving on Event Hub. The payload will be inside a `data` attribute (see event payloads on [Output Streams Event Types](/data-handling/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. +Here is an example of an event arriving on Event Hub. The payload will be inside a `data` attribute (see event payloads on [Output Streams Event Types](/data-routing/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. ```json { diff --git a/docs/data-handling/2-output-streams/3-azure-event-hub/_category_.yml b/docs/data-routing/2-output-streams/3-azure-event-hub/_category_.yml similarity index 100% rename from docs/data-handling/2-output-streams/3-azure-event-hub/_category_.yml rename to docs/data-routing/2-output-streams/3-azure-event-hub/_category_.yml diff --git a/docs/data-handling/2-output-streams/4-aws-sqs/README.md b/docs/data-routing/2-output-streams/4-aws-sqs/README.md similarity index 89% rename from docs/data-handling/2-output-streams/4-aws-sqs/README.md rename to docs/data-routing/2-output-streams/4-aws-sqs/README.md index b31cb638..6f48cbe5 100644 --- a/docs/data-handling/2-output-streams/4-aws-sqs/README.md +++ b/docs/data-routing/2-output-streams/4-aws-sqs/README.md @@ -53,9 +53,9 @@ To use this integration, you need to create an SQS Queue and and a user with per ### Example -As mentioned on the [Output Streams Overview](/data-handling/output-streams), events are sent using the [Cloud Events](https://cloudevents.io) format. For AWS SQS, some metadata of the event are sent together with the message body. +As mentioned on the [Output Streams Overview](/data-routing/output-streams), events are sent using the [Cloud Events](https://cloudevents.io) format. For AWS SQS, some metadata of the event are sent together with the message body. -Here is an example of an event arriving on SQS. The payload is going to be inside of a `data` attribute (see event payloads on [Output Streams Event Types](/data-handling/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. +Here is an example of an event arriving on SQS. The payload is going to be inside of a `data` attribute (see event payloads on [Output Streams Event Types](/data-routing/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. ```json { diff --git a/docs/data-handling/2-output-streams/4-aws-sqs/_category_.yml b/docs/data-routing/2-output-streams/4-aws-sqs/_category_.yml similarity index 100% rename from docs/data-handling/2-output-streams/4-aws-sqs/_category_.yml rename to docs/data-routing/2-output-streams/4-aws-sqs/_category_.yml diff --git a/docs/data-handling/2-output-streams/4-aws-sqs/assets/msg-body.png b/docs/data-routing/2-output-streams/4-aws-sqs/assets/msg-body.png similarity index 100% rename from docs/data-handling/2-output-streams/4-aws-sqs/assets/msg-body.png rename to docs/data-routing/2-output-streams/4-aws-sqs/assets/msg-body.png diff --git a/docs/data-handling/2-output-streams/4-aws-sqs/assets/msg-header.png b/docs/data-routing/2-output-streams/4-aws-sqs/assets/msg-header.png similarity index 100% rename from docs/data-handling/2-output-streams/4-aws-sqs/assets/msg-header.png rename to docs/data-routing/2-output-streams/4-aws-sqs/assets/msg-header.png diff --git a/docs/data-handling/2-output-streams/5-gcp-pubsub/README.md b/docs/data-routing/2-output-streams/5-gcp-pubsub/README.md similarity index 97% rename from docs/data-handling/2-output-streams/5-gcp-pubsub/README.md rename to docs/data-routing/2-output-streams/5-gcp-pubsub/README.md index e740098f..bb509e3f 100644 --- a/docs/data-handling/2-output-streams/5-gcp-pubsub/README.md +++ b/docs/data-routing/2-output-streams/5-gcp-pubsub/README.md @@ -106,7 +106,7 @@ Go the [Golioth Platform](https://console.golioth.io), log in and select your Pr Golioth Output Streams use the [Cloud Events](https://cloudevents.io) format. For GCP PubSub, this means some metadata of the event are sent together with the message body. -Here is an example of an event arriving on PubSub. The payload will be inside a `data` attribute (see event payloads on [Output Streams Event Types](/data-handling/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. +Here is an example of an event arriving on PubSub. The payload will be inside a `data` attribute (see event payloads on [Output Streams Event Types](/data-routing/output-streams/event-types/events)). The other attributes are metadata related to Cloud Events. ```json { diff --git a/docs/data-handling/2-output-streams/5-gcp-pubsub/_category_.yml b/docs/data-routing/2-output-streams/5-gcp-pubsub/_category_.yml similarity index 100% rename from docs/data-handling/2-output-streams/5-gcp-pubsub/_category_.yml rename to docs/data-routing/2-output-streams/5-gcp-pubsub/_category_.yml diff --git a/docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png b/docs/data-routing/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png similarity index 100% rename from docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png rename to docs/data-routing/2-output-streams/5-gcp-pubsub/assets/gcp-created-service-acc.png diff --git a/docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png b/docs/data-routing/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png similarity index 100% rename from docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png rename to docs/data-routing/2-output-streams/5-gcp-pubsub/assets/gcp-detailing-service-acc.png diff --git a/docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png b/docs/data-routing/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png similarity index 100% rename from docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png rename to docs/data-routing/2-output-streams/5-gcp-pubsub/assets/gcp-iam-create-service-acc.png diff --git a/docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png b/docs/data-routing/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png similarity index 100% rename from docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png rename to docs/data-routing/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topic-name.png diff --git a/docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png b/docs/data-routing/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png similarity index 100% rename from docs/data-handling/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png rename to docs/data-routing/2-output-streams/5-gcp-pubsub/assets/gcp-pubsub-topics.png diff --git a/docs/data-handling/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png b/docs/data-routing/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png similarity index 100% rename from docs/data-handling/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png rename to docs/data-routing/2-output-streams/5-gcp-pubsub/assets/golioth-creating-pubsub-output-stream.png diff --git a/docs/data-handling/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png b/docs/data-routing/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png similarity index 100% rename from docs/data-handling/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png rename to docs/data-routing/2-output-streams/5-gcp-pubsub/assets/golioth-gcp-output-stream.png diff --git a/docs/data-handling/2-output-streams/6-datacake/README.md b/docs/data-routing/2-output-streams/6-datacake/README.md similarity index 97% rename from docs/data-handling/2-output-streams/6-datacake/README.md rename to docs/data-routing/2-output-streams/6-datacake/README.md index 1084d3f3..da98df2f 100644 --- a/docs/data-handling/2-output-streams/6-datacake/README.md +++ b/docs/data-routing/2-output-streams/6-datacake/README.md @@ -38,7 +38,7 @@ In this tutorial you will see how to: Golioth Output Streams use the [Cloud Events](https://cloudevents.io) format. For Datacake, this means some metadata of the event are sent as HTTP headers. -Here is an example of an event arriving on Datcake. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/data-handling/output-streams/event-types/events)). +Here is an example of an event arriving on Datcake. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/data-routing/output-streams/event-types/events)). ``` diff --git a/docs/data-handling/2-output-streams/6-datacake/_category_.yml b/docs/data-routing/2-output-streams/6-datacake/_category_.yml similarity index 100% rename from docs/data-handling/2-output-streams/6-datacake/_category_.yml rename to docs/data-routing/2-output-streams/6-datacake/_category_.yml diff --git a/docs/data-handling/2-output-streams/7-ubidots/README.md b/docs/data-routing/2-output-streams/7-ubidots/README.md similarity index 97% rename from docs/data-handling/2-output-streams/7-ubidots/README.md rename to docs/data-routing/2-output-streams/7-ubidots/README.md index e90158e5..2b9602cc 100644 --- a/docs/data-handling/2-output-streams/7-ubidots/README.md +++ b/docs/data-routing/2-output-streams/7-ubidots/README.md @@ -44,7 +44,7 @@ In this tutorial you will see how to: Golioth Output Streams use the [Cloud Events](https://cloudevents.io) format. For Ubidots, this means some metadata of the event are sent as HTTP headers. -Here is an example of an event arriving on Ubidots. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/data-handling/output-streams/event-types/events)). +Here is an example of an event arriving on Ubidots. Headers prefixed with `Ce-` are related to Cloud Events and the message body is the event payload (see event payloads on [Output Streams Event Types](/data-routing/output-streams/event-types/events)). ``` POST {your-uri-path} HTTP/1.1 diff --git a/docs/data-handling/2-output-streams/7-ubidots/_category_.yml b/docs/data-routing/2-output-streams/7-ubidots/_category_.yml similarity index 100% rename from docs/data-handling/2-output-streams/7-ubidots/_category_.yml rename to docs/data-routing/2-output-streams/7-ubidots/_category_.yml diff --git a/docs/data-handling/2-output-streams/8-influx/README.md b/docs/data-routing/2-output-streams/8-influx/README.md similarity index 100% rename from docs/data-handling/2-output-streams/8-influx/README.md rename to docs/data-routing/2-output-streams/8-influx/README.md diff --git a/docs/data-handling/2-output-streams/8-influx/_category_.yml b/docs/data-routing/2-output-streams/8-influx/_category_.yml similarity index 100% rename from docs/data-handling/2-output-streams/8-influx/_category_.yml rename to docs/data-routing/2-output-streams/8-influx/_category_.yml diff --git a/docs/data-handling/2-output-streams/8-influx/assets/2023-07-20_15-37.png b/docs/data-routing/2-output-streams/8-influx/assets/2023-07-20_15-37.png similarity index 100% rename from docs/data-handling/2-output-streams/8-influx/assets/2023-07-20_15-37.png rename to docs/data-routing/2-output-streams/8-influx/assets/2023-07-20_15-37.png diff --git a/docs/data-handling/2-output-streams/8-influx/assets/buckets.png b/docs/data-routing/2-output-streams/8-influx/assets/buckets.png similarity index 100% rename from docs/data-handling/2-output-streams/8-influx/assets/buckets.png rename to docs/data-routing/2-output-streams/8-influx/assets/buckets.png diff --git a/docs/data-handling/2-output-streams/8-influx/assets/cluster-url.png b/docs/data-routing/2-output-streams/8-influx/assets/cluster-url.png similarity index 100% rename from docs/data-handling/2-output-streams/8-influx/assets/cluster-url.png rename to docs/data-routing/2-output-streams/8-influx/assets/cluster-url.png diff --git a/docs/data-handling/2-output-streams/8-influx/assets/create-outputstream-form.png b/docs/data-routing/2-output-streams/8-influx/assets/create-outputstream-form.png similarity index 100% rename from docs/data-handling/2-output-streams/8-influx/assets/create-outputstream-form.png rename to docs/data-routing/2-output-streams/8-influx/assets/create-outputstream-form.png diff --git a/docs/data-handling/2-output-streams/8-influx/assets/generate-token-button.png b/docs/data-routing/2-output-streams/8-influx/assets/generate-token-button.png similarity index 100% rename from docs/data-handling/2-output-streams/8-influx/assets/generate-token-button.png rename to docs/data-routing/2-output-streams/8-influx/assets/generate-token-button.png diff --git a/docs/data-handling/2-output-streams/8-influx/assets/generate-token.png b/docs/data-routing/2-output-streams/8-influx/assets/generate-token.png similarity index 100% rename from docs/data-handling/2-output-streams/8-influx/assets/generate-token.png rename to docs/data-routing/2-output-streams/8-influx/assets/generate-token.png diff --git a/docs/data-handling/2-output-streams/8-influx/assets/load-data-menu.png b/docs/data-routing/2-output-streams/8-influx/assets/load-data-menu.png similarity index 100% rename from docs/data-handling/2-output-streams/8-influx/assets/load-data-menu.png rename to docs/data-routing/2-output-streams/8-influx/assets/load-data-menu.png diff --git a/docs/data-handling/2-output-streams/8-influx/assets/org-settings-menu.png b/docs/data-routing/2-output-streams/8-influx/assets/org-settings-menu.png similarity index 100% rename from docs/data-handling/2-output-streams/8-influx/assets/org-settings-menu.png rename to docs/data-routing/2-output-streams/8-influx/assets/org-settings-menu.png diff --git a/docs/data-handling/2-output-streams/8-influx/assets/select-outputstream.png b/docs/data-routing/2-output-streams/8-influx/assets/select-outputstream.png similarity index 100% rename from docs/data-handling/2-output-streams/8-influx/assets/select-outputstream.png rename to docs/data-routing/2-output-streams/8-influx/assets/select-outputstream.png diff --git a/docs/data-handling/2-output-streams/8-influx/assets/token-create-form.png b/docs/data-routing/2-output-streams/8-influx/assets/token-create-form.png similarity index 100% rename from docs/data-handling/2-output-streams/8-influx/assets/token-create-form.png rename to docs/data-routing/2-output-streams/8-influx/assets/token-create-form.png diff --git a/docs/data-handling/2-output-streams/9-event-types/2-events.mdx b/docs/data-routing/2-output-streams/9-event-types/2-events.mdx similarity index 100% rename from docs/data-handling/2-output-streams/9-event-types/2-events.mdx rename to docs/data-routing/2-output-streams/9-event-types/2-events.mdx diff --git a/docs/data-handling/2-output-streams/9-event-types/README.md b/docs/data-routing/2-output-streams/9-event-types/README.md similarity index 100% rename from docs/data-handling/2-output-streams/9-event-types/README.md rename to docs/data-routing/2-output-streams/9-event-types/README.md diff --git a/docs/data-handling/2-output-streams/9-event-types/_category_.yml b/docs/data-routing/2-output-streams/9-event-types/_category_.yml similarity index 100% rename from docs/data-handling/2-output-streams/9-event-types/_category_.yml rename to docs/data-routing/2-output-streams/9-event-types/_category_.yml diff --git a/docs/data-handling/2-output-streams/README.md b/docs/data-routing/2-output-streams/README.md similarity index 100% rename from docs/data-handling/2-output-streams/README.md rename to docs/data-routing/2-output-streams/README.md diff --git a/docs/data-handling/2-output-streams/_category_.yml b/docs/data-routing/2-output-streams/_category_.yml similarity index 100% rename from docs/data-handling/2-output-streams/_category_.yml rename to docs/data-routing/2-output-streams/_category_.yml diff --git a/docs/data-handling/2-output-streams/messages.json b/docs/data-routing/2-output-streams/messages.json similarity index 100% rename from docs/data-handling/2-output-streams/messages.json rename to docs/data-routing/2-output-streams/messages.json diff --git a/docs/data-handling/README.md b/docs/data-routing/README.md similarity index 85% rename from docs/data-handling/README.md rename to docs/data-routing/README.md index 168db615..7b944541 100644 --- a/docs/data-handling/README.md +++ b/docs/data-routing/README.md @@ -1,6 +1,6 @@ --- -title: Golioth Data Handling -slug: /data-handling +title: Golioth Data Routing +slug: /data-routing sidebar_position: 0 --- diff --git a/docs/data-handling/assets/output-streams_azure-event-hub-connect.png b/docs/data-routing/assets/output-streams_azure-event-hub-connect.png similarity index 100% rename from docs/data-handling/assets/output-streams_azure-event-hub-connect.png rename to docs/data-routing/assets/output-streams_azure-event-hub-connect.png diff --git a/docs/data-handling/assets/output-streams_azure-event-hub-send-policy.png b/docs/data-routing/assets/output-streams_azure-event-hub-send-policy.png similarity index 100% rename from docs/data-handling/assets/output-streams_azure-event-hub-send-policy.png rename to docs/data-routing/assets/output-streams_azure-event-hub-send-policy.png diff --git a/docs/data-handling/assets/output-streams_azure-event-hub-shared-access.png b/docs/data-routing/assets/output-streams_azure-event-hub-shared-access.png similarity index 100% rename from docs/data-handling/assets/output-streams_azure-event-hub-shared-access.png rename to docs/data-routing/assets/output-streams_azure-event-hub-shared-access.png diff --git a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md index 9aadbf0f..ad2cbb60 100644 --- a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md +++ b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md @@ -119,4 +119,4 @@ testing. We recommend using `coap` when first working on LightDB data storage and retrieval. The interactive nature makes it easy to test your schema before moving to embedded devices. -Examples of using `coap` with LightDB are [found in the Cloud documentation](/data-handling/stored-data/lightdb-state/read-write-data). +Examples of using `coap` with LightDB are [found in the Cloud documentation](/data-routing/stored-data/lightdb-state/read-write-data). diff --git a/docs/firmware/zephyr-device-sdk/light-db-stream/README.md b/docs/firmware/zephyr-device-sdk/light-db-stream/README.md index a33b4963..2a57b78e 100644 --- a/docs/firmware/zephyr-device-sdk/light-db-stream/README.md +++ b/docs/firmware/zephyr-device-sdk/light-db-stream/README.md @@ -3,8 +3,14 @@ title: LightDB Stream Client Overview sidebar_position: 1 --- -LightDB Stream is a persistent database service hosted by Golioth. The LightDB Stream service can be used to create time series data that can be extracted using utilities described in the [Cloud](https://docs.golioth.io/cloud) section of the Golioth documentation. +LightDB Stream is a persistent database service hosted by Golioth. The LightDB +Stream service can be used to create time series data that can be extracted +using utilities described in the [Command Line +Tools](/reference/command-line-tools/tutorial) section of the Golioth +documentation. ![Console](../assets/lightDB-stream-svg-a4.svg) -Checkout the [LightDB Stream](https://docs.golioth.io/data-handling/lightdb-stream/) guide for a walkthrough of the sample demonstrating the firmware calls used to interact with the Golioth LightDB Stream service. +Checkout the [LightDB Stream](/data-routing/stored-data/lightdb-stream/) guide +for a walkthrough of the sample demonstrating the firmware calls used to +interact with the Golioth LightDB Stream service. diff --git a/docs/landing_page.md b/docs/landing_page.md index 08f7935d..11a8d5f7 100644 --- a/docs/landing_page.md +++ b/docs/landing_page.md @@ -72,7 +72,7 @@ us](mailto:hello@golioth.io). Here you will find details about rolling out over-the-air (OTA) firmware updates, accessing device logs, changing device settings for your fleet, and issuing remote procedure calls (RPC). -- [Data Handling](/data-handling) - These are "server side" features of the +- [Data Routing](/data-routing) - These are "server side" features of the Golioth platform that deal with data moving to and from our IoT fleet. Here you will find details about accessing stored data from your devices, and options for routing that data to other platforms, whether that's your own diff --git a/docs/reference/2-protocols/1-coap/3-lightdb.md b/docs/reference/2-protocols/1-coap/3-lightdb.md index 72a76971..7daa2aad 100644 --- a/docs/reference/2-protocols/1-coap/3-lightdb.md +++ b/docs/reference/2-protocols/1-coap/3-lightdb.md @@ -3,11 +3,11 @@ id: lightdb title: LightDB --- -[LightDB Device Service](/data-handling/stored-data/lightdb-state) definitions over CoAP. +[LightDB Device Service](/data-routing/stored-data/lightdb-state) definitions over CoAP. How to use guides: -- [Read Write Data](/data-handling/stored-data/lightdb-state/read-write-data) +- [Read Write Data](/data-routing/stored-data/lightdb-state/read-write-data) ### Interface diff --git a/docs/reference/2-protocols/1-coap/4-lightdb-stream.md b/docs/reference/2-protocols/1-coap/4-lightdb-stream.md index 9a35c8f3..90fa933c 100644 --- a/docs/reference/2-protocols/1-coap/4-lightdb-stream.md +++ b/docs/reference/2-protocols/1-coap/4-lightdb-stream.md @@ -3,11 +3,11 @@ id: lightdb-stream title: LightDB Stream --- -[LightDB Stream Device Service](/data-handling/stored-data/lightdb-stream) definitions over CoAP. +[LightDB Stream Device Service](/data-routing/stored-data/lightdb-stream) definitions over CoAP. How to use guides: -- [Sending Data](/data-handling/stored-data/lightdb-stream/sending-data) +- [Sending Data](/data-routing/stored-data/lightdb-stream/sending-data) ### Interface diff --git a/docs/reference/2-protocols/1-coap/7-limits.md b/docs/reference/2-protocols/1-coap/7-limits.md index dc4e65eb..e1768255 100644 --- a/docs/reference/2-protocols/1-coap/7-limits.md +++ b/docs/reference/2-protocols/1-coap/7-limits.md @@ -11,7 +11,7 @@ Golioth servers enforce the following limit on CoAP requests: When passing frequent readings from a single device to Golioth (greater than 1 Hz) we recommend sending in batches. As noted for the [LightDB Stream -service](/data-handling/stored-data/lightdb-stream/sending-data), your device +service](/data-routing/stored-data/lightdb-stream/sending-data), your device can add timestamps to data packets by using `t`, `ts`, or `time` as the key. The Golioth LightDB Stream service will use the timestamp for the database entry instead of the time received. diff --git a/docs/reference/4-websocket/3-Endpoints/1-lightdb.md b/docs/reference/4-websocket/3-Endpoints/1-lightdb.md index b1f5b104..4b56ac2e 100644 --- a/docs/reference/4-websocket/3-Endpoints/1-lightdb.md +++ b/docs/reference/4-websocket/3-Endpoints/1-lightdb.md @@ -3,7 +3,7 @@ id: lightdb title: LightDB --- -[LightDB Device Service](/data-handling/stored-data/lightdb-state) definitions. +[LightDB Device Service](/data-routing/stored-data/lightdb-state) definitions. Real-time endpoint to listen to any changes in a device state path. diff --git a/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md b/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md index dd09b593..69c0e0d6 100644 --- a/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md +++ b/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md @@ -3,7 +3,7 @@ id: lightdb-stream title: LightDB Stream --- -[LightDB Stream Device Service](/data-handling/stored-data/lightdb-stream) definitions. +[LightDB Stream Device Service](/data-routing/stored-data/lightdb-stream) definitions. Real-time endpoint to listen to a device's data stream as it arrives at the Golioth Cloud. diff --git a/docusaurus.config.js b/docusaurus.config.js index 862b7112..9c15f900 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -40,9 +40,9 @@ module.exports = { position: "left", }, { - to: "data-handling", - activeBasePath: "data-handling", - label: "Data Handling", + to: "data-routing", + activeBasePath: "data-routing", + label: "Data Routing", position: "left", }, { diff --git a/sidebars.js b/sidebars.js index bccd4dde..4d77fe47 100644 --- a/sidebars.js +++ b/sidebars.js @@ -40,7 +40,7 @@ const devicemanagement = [ const datamanagement = [ { type: 'autogenerated', - dirName: 'data-handling', + dirName: 'data-routing', }, ] From 433b2ac65b0103ad6d1810e693631c89633abb62 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Thu, 30 Nov 2023 16:52:20 -0600 Subject: [PATCH 30/88] rename stored-data to application-services This section currently contains LightDB State and Stream, but more services will be added and this section will be broken out into its own freestanding category. Signed-off-by: Mike Szczys --- .../1-lightdb-state/2-structure-data.md | 0 .../1-lightdb-state/3-read-write-data.md | 0 .../1-lightdb-state/4-simulating-devices.md | 0 .../1-lightdb-state/README.md | 0 .../1-lightdb-state/_category_.yml | 0 .../4-lightdb-stream/2-sending-data.md | 0 .../4-lightdb-stream/3-querying-data.md | 0 .../4-lightdb-stream/README.md | 0 .../4-lightdb-stream/_category_.yml | 0 .../{1-stored-data => 1-application-services}/README.md | 0 .../{1-stored-data => 1-application-services}/_category_.yml | 2 +- .../2-zephyr-quickstart/3-simulating-devices-coap.md | 2 +- docs/firmware/zephyr-device-sdk/light-db-stream/README.md | 2 +- docs/reference/2-protocols/1-coap/3-lightdb.md | 4 ++-- docs/reference/2-protocols/1-coap/4-lightdb-stream.md | 4 ++-- docs/reference/2-protocols/1-coap/7-limits.md | 2 +- docs/reference/4-websocket/3-Endpoints/1-lightdb.md | 2 +- docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md | 2 +- 18 files changed, 10 insertions(+), 10 deletions(-) rename docs/data-routing/{1-stored-data => 1-application-services}/1-lightdb-state/2-structure-data.md (100%) rename docs/data-routing/{1-stored-data => 1-application-services}/1-lightdb-state/3-read-write-data.md (100%) rename docs/data-routing/{1-stored-data => 1-application-services}/1-lightdb-state/4-simulating-devices.md (100%) rename docs/data-routing/{1-stored-data => 1-application-services}/1-lightdb-state/README.md (100%) rename docs/data-routing/{1-stored-data => 1-application-services}/1-lightdb-state/_category_.yml (100%) rename docs/data-routing/{1-stored-data => 1-application-services}/4-lightdb-stream/2-sending-data.md (100%) rename docs/data-routing/{1-stored-data => 1-application-services}/4-lightdb-stream/3-querying-data.md (100%) rename docs/data-routing/{1-stored-data => 1-application-services}/4-lightdb-stream/README.md (100%) rename docs/data-routing/{1-stored-data => 1-application-services}/4-lightdb-stream/_category_.yml (100%) rename docs/data-routing/{1-stored-data => 1-application-services}/README.md (100%) rename docs/data-routing/{1-stored-data => 1-application-services}/_category_.yml (82%) diff --git a/docs/data-routing/1-stored-data/1-lightdb-state/2-structure-data.md b/docs/data-routing/1-application-services/1-lightdb-state/2-structure-data.md similarity index 100% rename from docs/data-routing/1-stored-data/1-lightdb-state/2-structure-data.md rename to docs/data-routing/1-application-services/1-lightdb-state/2-structure-data.md diff --git a/docs/data-routing/1-stored-data/1-lightdb-state/3-read-write-data.md b/docs/data-routing/1-application-services/1-lightdb-state/3-read-write-data.md similarity index 100% rename from docs/data-routing/1-stored-data/1-lightdb-state/3-read-write-data.md rename to docs/data-routing/1-application-services/1-lightdb-state/3-read-write-data.md diff --git a/docs/data-routing/1-stored-data/1-lightdb-state/4-simulating-devices.md b/docs/data-routing/1-application-services/1-lightdb-state/4-simulating-devices.md similarity index 100% rename from docs/data-routing/1-stored-data/1-lightdb-state/4-simulating-devices.md rename to docs/data-routing/1-application-services/1-lightdb-state/4-simulating-devices.md diff --git a/docs/data-routing/1-stored-data/1-lightdb-state/README.md b/docs/data-routing/1-application-services/1-lightdb-state/README.md similarity index 100% rename from docs/data-routing/1-stored-data/1-lightdb-state/README.md rename to docs/data-routing/1-application-services/1-lightdb-state/README.md diff --git a/docs/data-routing/1-stored-data/1-lightdb-state/_category_.yml b/docs/data-routing/1-application-services/1-lightdb-state/_category_.yml similarity index 100% rename from docs/data-routing/1-stored-data/1-lightdb-state/_category_.yml rename to docs/data-routing/1-application-services/1-lightdb-state/_category_.yml diff --git a/docs/data-routing/1-stored-data/4-lightdb-stream/2-sending-data.md b/docs/data-routing/1-application-services/4-lightdb-stream/2-sending-data.md similarity index 100% rename from docs/data-routing/1-stored-data/4-lightdb-stream/2-sending-data.md rename to docs/data-routing/1-application-services/4-lightdb-stream/2-sending-data.md diff --git a/docs/data-routing/1-stored-data/4-lightdb-stream/3-querying-data.md b/docs/data-routing/1-application-services/4-lightdb-stream/3-querying-data.md similarity index 100% rename from docs/data-routing/1-stored-data/4-lightdb-stream/3-querying-data.md rename to docs/data-routing/1-application-services/4-lightdb-stream/3-querying-data.md diff --git a/docs/data-routing/1-stored-data/4-lightdb-stream/README.md b/docs/data-routing/1-application-services/4-lightdb-stream/README.md similarity index 100% rename from docs/data-routing/1-stored-data/4-lightdb-stream/README.md rename to docs/data-routing/1-application-services/4-lightdb-stream/README.md diff --git a/docs/data-routing/1-stored-data/4-lightdb-stream/_category_.yml b/docs/data-routing/1-application-services/4-lightdb-stream/_category_.yml similarity index 100% rename from docs/data-routing/1-stored-data/4-lightdb-stream/_category_.yml rename to docs/data-routing/1-application-services/4-lightdb-stream/_category_.yml diff --git a/docs/data-routing/1-stored-data/README.md b/docs/data-routing/1-application-services/README.md similarity index 100% rename from docs/data-routing/1-stored-data/README.md rename to docs/data-routing/1-application-services/README.md diff --git a/docs/data-routing/1-stored-data/_category_.yml b/docs/data-routing/1-application-services/_category_.yml similarity index 82% rename from docs/data-routing/1-stored-data/_category_.yml rename to docs/data-routing/1-application-services/_category_.yml index a460c59e..2eb02de8 100644 --- a/docs/data-routing/1-stored-data/_category_.yml +++ b/docs/data-routing/1-application-services/_category_.yml @@ -1,4 +1,4 @@ -label: 'Stored Data' +label: 'Application Services' position: 1 # float position is supported collapsible: true # make the category collapsible collapsed: false # keep the category open by default diff --git a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md index ad2cbb60..4cb26956 100644 --- a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md +++ b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/3-simulating-devices-coap.md @@ -119,4 +119,4 @@ testing. We recommend using `coap` when first working on LightDB data storage and retrieval. The interactive nature makes it easy to test your schema before moving to embedded devices. -Examples of using `coap` with LightDB are [found in the Cloud documentation](/data-routing/stored-data/lightdb-state/read-write-data). +Examples of using `coap` with LightDB are [found in the Cloud documentation](/data-routing/application-services/lightdb-state/read-write-data). diff --git a/docs/firmware/zephyr-device-sdk/light-db-stream/README.md b/docs/firmware/zephyr-device-sdk/light-db-stream/README.md index 2a57b78e..754511eb 100644 --- a/docs/firmware/zephyr-device-sdk/light-db-stream/README.md +++ b/docs/firmware/zephyr-device-sdk/light-db-stream/README.md @@ -11,6 +11,6 @@ documentation. ![Console](../assets/lightDB-stream-svg-a4.svg) -Checkout the [LightDB Stream](/data-routing/stored-data/lightdb-stream/) guide +Checkout the [LightDB Stream](/data-routing/application-services/lightdb-stream/) guide for a walkthrough of the sample demonstrating the firmware calls used to interact with the Golioth LightDB Stream service. diff --git a/docs/reference/2-protocols/1-coap/3-lightdb.md b/docs/reference/2-protocols/1-coap/3-lightdb.md index 7daa2aad..d43e3885 100644 --- a/docs/reference/2-protocols/1-coap/3-lightdb.md +++ b/docs/reference/2-protocols/1-coap/3-lightdb.md @@ -3,11 +3,11 @@ id: lightdb title: LightDB --- -[LightDB Device Service](/data-routing/stored-data/lightdb-state) definitions over CoAP. +[LightDB Device Service](/data-routing/application-services/lightdb-state) definitions over CoAP. How to use guides: -- [Read Write Data](/data-routing/stored-data/lightdb-state/read-write-data) +- [Read Write Data](/data-routing/application-services/lightdb-state/read-write-data) ### Interface diff --git a/docs/reference/2-protocols/1-coap/4-lightdb-stream.md b/docs/reference/2-protocols/1-coap/4-lightdb-stream.md index 90fa933c..9a2d8efa 100644 --- a/docs/reference/2-protocols/1-coap/4-lightdb-stream.md +++ b/docs/reference/2-protocols/1-coap/4-lightdb-stream.md @@ -3,11 +3,11 @@ id: lightdb-stream title: LightDB Stream --- -[LightDB Stream Device Service](/data-routing/stored-data/lightdb-stream) definitions over CoAP. +[LightDB Stream Device Service](/data-routing/application-services/lightdb-stream) definitions over CoAP. How to use guides: -- [Sending Data](/data-routing/stored-data/lightdb-stream/sending-data) +- [Sending Data](/data-routing/application-services/lightdb-stream/sending-data) ### Interface diff --git a/docs/reference/2-protocols/1-coap/7-limits.md b/docs/reference/2-protocols/1-coap/7-limits.md index e1768255..9afd0b80 100644 --- a/docs/reference/2-protocols/1-coap/7-limits.md +++ b/docs/reference/2-protocols/1-coap/7-limits.md @@ -11,7 +11,7 @@ Golioth servers enforce the following limit on CoAP requests: When passing frequent readings from a single device to Golioth (greater than 1 Hz) we recommend sending in batches. As noted for the [LightDB Stream -service](/data-routing/stored-data/lightdb-stream/sending-data), your device +service](/data-routing/application-services/lightdb-stream/sending-data), your device can add timestamps to data packets by using `t`, `ts`, or `time` as the key. The Golioth LightDB Stream service will use the timestamp for the database entry instead of the time received. diff --git a/docs/reference/4-websocket/3-Endpoints/1-lightdb.md b/docs/reference/4-websocket/3-Endpoints/1-lightdb.md index 4b56ac2e..50f2e0e2 100644 --- a/docs/reference/4-websocket/3-Endpoints/1-lightdb.md +++ b/docs/reference/4-websocket/3-Endpoints/1-lightdb.md @@ -3,7 +3,7 @@ id: lightdb title: LightDB --- -[LightDB Device Service](/data-routing/stored-data/lightdb-state) definitions. +[LightDB Device Service](/data-routing/application-services/lightdb-state) definitions. Real-time endpoint to listen to any changes in a device state path. diff --git a/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md b/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md index 69c0e0d6..7ec73f8d 100644 --- a/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md +++ b/docs/reference/4-websocket/3-Endpoints/2-lightdb-stream.md @@ -3,7 +3,7 @@ id: lightdb-stream title: LightDB Stream --- -[LightDB Stream Device Service](/data-routing/stored-data/lightdb-stream) definitions. +[LightDB Stream Device Service](/data-routing/application-services/lightdb-stream) definitions. Real-time endpoint to listen to a device's data stream as it arrives at the Golioth Cloud. From 7256453b8c489f9133ad05a21ec7dac6612c81bc Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Mon, 27 Nov 2023 15:45:22 -0600 Subject: [PATCH 31/88] firmware: add sections for build environment Signed-off-by: Mike Szczys --- docs/firmware/firmware-home.md | 2 +- .../golioth-firmware-sdk/build-environment/README.md | 9 +++++++++ .../zephyr-device-sdk/build-environment/README.md | 7 +++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 docs/firmware/golioth-firmware-sdk/build-environment/README.md create mode 100644 docs/firmware/zephyr-device-sdk/build-environment/README.md diff --git a/docs/firmware/firmware-home.md b/docs/firmware/firmware-home.md index 4c1dd744..e007c493 100644 --- a/docs/firmware/firmware-home.md +++ b/docs/firmware/firmware-home.md @@ -1,7 +1,7 @@ --- title: Firmware slug: /firmware -sidebar_position: 1 +sidebar_position: 0 --- ## Introduction diff --git a/docs/firmware/golioth-firmware-sdk/build-environment/README.md b/docs/firmware/golioth-firmware-sdk/build-environment/README.md new file mode 100644 index 00000000..95dd632f --- /dev/null +++ b/docs/firmware/golioth-firmware-sdk/build-environment/README.md @@ -0,0 +1,9 @@ +--- +title: Set up a Firmware Build Environment +sidebar_position: 0.9 +--- + +* Use Golioth with Zephyr +* Use Golioth with NCS (Nordic Fork of Zephyr) +* Use Golioth with Espressif ESP-IDF +* Use Golioth with Infineon ModusToolbox™ diff --git a/docs/firmware/zephyr-device-sdk/build-environment/README.md b/docs/firmware/zephyr-device-sdk/build-environment/README.md new file mode 100644 index 00000000..e92e5f5e --- /dev/null +++ b/docs/firmware/zephyr-device-sdk/build-environment/README.md @@ -0,0 +1,7 @@ +--- +title: Set up a Firmware Build Environment +sidebar_position: 0.9 +--- + +* Use Golioth with Zephyr +* Use Golioth with NCS (Nordic Fork of Zephyr) From 89a3461346294ba4daad93ac06998ccbe1353ba8 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Mon, 27 Nov 2023 16:37:17 -0600 Subject: [PATCH 32/88] firmware: Add setup for Zephyr and NCS Detail how to setup a build environment for Golioth and Zephyr/NCS that is not device specific. Signed-off-by: Mike Szczys --- .../build-environment/zephyr-ncs.md | 80 +++++++++++++++++ .../build-environment/zephyr.md | 86 +++++++++++++++++++ docs/partials-common/sample-build.mdx | 7 +- 3 files changed, 170 insertions(+), 3 deletions(-) create mode 100644 docs/firmware/zephyr-device-sdk/build-environment/zephyr-ncs.md create mode 100644 docs/firmware/zephyr-device-sdk/build-environment/zephyr.md diff --git a/docs/firmware/zephyr-device-sdk/build-environment/zephyr-ncs.md b/docs/firmware/zephyr-device-sdk/build-environment/zephyr-ncs.md new file mode 100644 index 00000000..4c52b0b7 --- /dev/null +++ b/docs/firmware/zephyr-device-sdk/build-environment/zephyr-ncs.md @@ -0,0 +1,80 @@ +--- +title: Nordic nRF Connect SDK (NCS) +hide_title: true +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## NCS Setup Overview + +Nordic Semiconductor devices require the [nRF Connect SDK +(NCS)](https://www.nordicsemi.com/Products/Development-software/nRF-Connect-SDK). +This is a fork of the Zephyr project that Nordic Semiconductor maintains and +includes some distinct features and IP. For instance, NCS includes the firmware +for the cellular modem on the nRF9160, which is unavailable in the upstream +Zephyr project. + +We will install the nRF Connect SDK in a directory in your home location +separate from other Zephyr projects shown for Golioth (in a directory called +`golioth-ncs-workspace`). + +### Install West + +import SetupWestNRF91 from '/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/\_partials/setup-west-nrf91.md' + + + +### Installing the Golioth Zephyr SDK for NCS + +import InstallNRFSDK from '/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/\_partials/install-nrf-connect-sdk.md' + + + +### Installing the Zephyr SDK Toolchain + +Nordic chips are ARM-based device, so we will use the ARM toolchains (gcc, gdb, etc) included in the Zephyr SDK + +import InstallZephyrSDKtoolchain from '/docs/partials-common/install-zephyr-sdk-toolchain.md' + + + +### Installing the Segger J-Link and nRF Command Line Tools + +Zephyr uses `nrfjprog` to flash Nordic targets using a hardware programmer like the Segger J-Link, or the debugger that is built into the development kit (DK) boards. This tool is part of the nRF Command Line Tools which we will install along with the Segger tool. + +1. Go to Segger and download the latest [J-Link Software and Documentation Pack](https://www.segger.com/downloads/jlink) + +2. Run the J-Link installer + + ```bash + sudo dpkg -i JLink_Linux_V760f_x86_64.deb + ``` + +3. Go to the [nRF Command Line Tools](https://www.nordicsemi.com/Products/Development-tools/nrf-command-line-tools/download) page. Scroll down, select your operating system, and download the installer package. + +4. Run the nRF Command Line Tools installer + + ```bash + sudo dpkg -i nrf-command-line-tools_10.15.2_amd64.deb + ``` + +## Build Sample Firmware + +### Build firmware for the nRF9160 + +Your system is all set up and ready to start building & flashing with Zephyr. Verify by building a minimal sample for the nRF9160 DK: + +import BuildFirmwareFor9160 from '/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/\_partials/build-fw-nrf91.md' + + + +### Flash firmware to the device + +If you are using a J-Link hardware programmer and already have the software for that tool set up on your system, flashing firmware is as simple as running: + +```bash +west flash +``` + +The nRF9160 DK acts as a J-Link hardware programmer. `west` will automatically work with J-Link as long as the supporting software is installed on your system. The next section will walk through installing that software. diff --git a/docs/firmware/zephyr-device-sdk/build-environment/zephyr.md b/docs/firmware/zephyr-device-sdk/build-environment/zephyr.md new file mode 100644 index 00000000..5a78a9dd --- /dev/null +++ b/docs/firmware/zephyr-device-sdk/build-environment/zephyr.md @@ -0,0 +1,86 @@ +--- +title: Zephyr RTOS +hide_title: true +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## Zephyr Setup Overview + +[Zephyr RTOS](https://docs.zephyrproject.org/) supports a vast number of +microcontrollers from a many different vendors. There's a very good chance your +preferred chip will work with Zephyr using Golioth as a module. + +We will install the Zephyr tree in a directory in your home location +separate from other Zephyr projects shown for Golioth (in a directory called +`golioth-zephyr-workspace`). + +### Install West + +import SetupZephyr from '/docs/partials-common/setup-zephyr.md' + + + +### Install Golioth Zephyr SDK + +import InstallZephyrSDK from '/docs/partials-common/install-zephyr-sdk.md' + + + +### Installing the Zephyr SDK Toolchain + +import InstallZephyrSDKtoolchain from '/docs/partials-common/install-zephyr-sdk-toolchain.md' + + + +### Install Device Specific Packages and Programming Tools + +Zephyr is a cross-vendor operating system and may require additional packages +and tools based on your specific hardware. + +#### Device Specific Examples: + +- Espressif support in Zephyr requires binary blob installation: + + ```shell + $ west blobs fetch hal_espressif + ``` + +- NXP evaluation kits usually offer on-board J-Link debugger support. To utilize + this you will need to install Segger's [J-Link Software and Documentation Pack](https://www.segger.com/downloads/jlink). + +:::tip Device-Specific information in Zephyr's Board Index + +Review your vendor's board support in the [Zephyr Board Index](https://docs.zephyrproject.org/latest/boards/index.html) to find more information on specific set up steps for your prefered hardware. + +::: + +## Build Sample Firmware + +Your system is all set up and ready to start building & flashing with Zephyr. +Verify by building a minimal sample: + +### Build firmware for the mimxrt1060_evkb + +Your system is all set up and ready to start building & flashing with Zephyr. +Verify by building a minimal sample for the NXP mimxrt1060_evkb + +import BuildSample from '/docs/partials-common/sample-build.mdx' + + + +### Flash firmware to the device + +If you are using [the J-Link debug probe with the +mimxrt1060_evkb](https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/Using-J-Link-with-MIMXRT1060-EVK-or-MIMXRT1064-EVK/ta-p/1281149) +and already have the software for that tool set up on your system, flashing +firmware is as simple as running: + +```bash +west flash +``` + +The mimxrt1060_evkb can act as a J-Link hardware programmer. `west` will +automatically work with J-Link as long as the supporting software is installed +on your system. The next section will walk through installing that software. diff --git a/docs/partials-common/sample-build.mdx b/docs/partials-common/sample-build.mdx index 57775e1a..0b9f6bb8 100644 --- a/docs/partials-common/sample-build.mdx +++ b/docs/partials-common/sample-build.mdx @@ -2,6 +2,7 @@ import CodeBlock from '@theme/CodeBlock'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +export -cd ~/golioth-zephyr-workspace/zephyr
+cd ~/golioth-zephyr-workspace/zephyr west build -b {props.board} samples/basic/minimal -p
@@ -22,7 +23,7 @@ west build -b {props.board} samples/basic/minimal -p -cd ~/golioth-zephyr-workspace/zephyr
+cd ~/golioth-zephyr-workspace/zephyr west build -b {props.board} samples/basic/minimal -p
@@ -30,7 +31,7 @@ west build -b {props.board} samples/basic/minimal -p -cd C:\golioth-zephyr-workspace\zephyr
+cd C:\golioth-zephyr-workspace\zephyr west build -b {props.board} samples\basic\minimal -p
From 4ef328aa235142454d8d9a2ecf2b0145409d2824 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Mon, 27 Nov 2023 16:53:59 -0600 Subject: [PATCH 33/88] remove: hardware specific Zephyr/NCS install These sections are now available as a generalized installation in the Firmware section for the Golioth Zephyr SDK. Signed-off-by: Mike Szczys --- .../2-zephyr-quickstart/2-set-up-zephyr.md | 41 ------- .../2-zephyr-quickstart/3-flash-sample.md | 101 ----------------- .../2-zephyr-quickstart/4-view-logs.md | 16 --- .../2-esp32/2-zephyr-quickstart/README.md | 17 --- .../2-zephyr-quickstart/_category_.yml | 4 - .../install-espressif-toolchain-unix.md | 7 -- .../install-espressif-toolchain-windows.md | 7 -- .../_partials/install-espressif-toolchain.md | 27 ----- .../1-zephyr-quickstart/2-set-up-zephyr.md | 35 ------ .../1-zephyr-quickstart/3-flash-sample.md | 104 ------------------ .../1-zephyr-quickstart/4-view-logs.md | 16 --- .../1-zephyr-quickstart/README.md | 15 --- .../1-zephyr-quickstart/_category_.yml | 4 - .../hardware/3-mimxrt1060_evkb/README.md | 18 --- .../hardware/3-mimxrt1060_evkb/_category_.yml | 4 - .../2-zephyr-quickstart/2-set-up-zephyr.md | 51 --------- .../3-hardware-programmer.md | 49 --------- .../2-zephyr-quickstart/4-carrier-setup.md | 31 ------ .../2-zephyr-quickstart/5-flash-sample.md | 93 ---------------- .../2-zephyr-quickstart/6-view-logs.md | 16 --- .../4-nrf91/2-zephyr-quickstart/README.md | 13 --- .../2-zephyr-quickstart/_category_.yml | 4 - .../assets/LTE-Link-Monitor.png | Bin 77197 -> 0 bytes docs/firmware/hardware/4-nrf91/README.md | 20 ---- docs/firmware/hardware/4-nrf91/_category_.yml | 4 - .../5-simulating-devices-qemu.md | 2 +- .../arm_mimxrt1060_evkb.md | 4 +- .../arm_nrf9160dk_nrf9160.md | 4 +- .../continuously-verified/xtensa_esp32.md | 4 +- .../build-environment/zephyr-ncs.md | 6 +- .../2-build-sample-application.md | 8 +- docs/landing_page.md | 10 +- .../build-fw-nrf91.md | 0 .../install-nrf-connect-sdk-unix.md | 0 .../install-nrf-connect-sdk-windows.md | 0 .../install-nrf-connect-sdk.md | 4 +- .../setup-west-nrf91-windows.md | 0 .../setup-west-nrf91.md | 2 +- .../unused/install-device-toolchain.md | 43 -------- 39 files changed, 21 insertions(+), 763 deletions(-) delete mode 100644 docs/firmware/hardware/2-esp32/2-zephyr-quickstart/2-set-up-zephyr.md delete mode 100644 docs/firmware/hardware/2-esp32/2-zephyr-quickstart/3-flash-sample.md delete mode 100644 docs/firmware/hardware/2-esp32/2-zephyr-quickstart/4-view-logs.md delete mode 100644 docs/firmware/hardware/2-esp32/2-zephyr-quickstart/README.md delete mode 100644 docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_category_.yml delete mode 100644 docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-unix.md delete mode 100644 docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-windows.md delete mode 100644 docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain.md delete mode 100644 docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/2-set-up-zephyr.md delete mode 100644 docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/3-flash-sample.md delete mode 100644 docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/4-view-logs.md delete mode 100644 docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/README.md delete mode 100644 docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/_category_.yml delete mode 100644 docs/firmware/hardware/3-mimxrt1060_evkb/README.md delete mode 100644 docs/firmware/hardware/3-mimxrt1060_evkb/_category_.yml delete mode 100644 docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/2-set-up-zephyr.md delete mode 100644 docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/3-hardware-programmer.md delete mode 100644 docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/4-carrier-setup.md delete mode 100644 docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/5-flash-sample.md delete mode 100644 docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/6-view-logs.md delete mode 100644 docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/README.md delete mode 100644 docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_category_.yml delete mode 100644 docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/assets/LTE-Link-Monitor.png delete mode 100644 docs/firmware/hardware/4-nrf91/README.md delete mode 100644 docs/firmware/hardware/4-nrf91/_category_.yml rename docs/{firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials => partials-common}/build-fw-nrf91.md (100%) rename docs/{firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials => partials-common}/install-nrf-connect-sdk-unix.md (100%) rename docs/{firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials => partials-common}/install-nrf-connect-sdk-windows.md (100%) rename docs/{firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials => partials-common}/install-nrf-connect-sdk.md (74%) rename docs/{firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials => partials-common}/setup-west-nrf91-windows.md (100%) rename docs/{firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials => partials-common}/setup-west-nrf91.md (90%) delete mode 100644 docs/partials-common/unused/install-device-toolchain.md diff --git a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/2-set-up-zephyr.md b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/2-set-up-zephyr.md deleted file mode 100644 index dc79c7e2..00000000 --- a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/2-set-up-zephyr.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: set-up-zephyr -title: Set up Zephyr for ESP32 ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Golioth can be added to a device with _Device SDKs_ which are based on different embedded Operating Systems. Currently Golioth targets the [Zephyr Project](https://www.zephyrproject.org/) and builds upon the APIs & tools of Zephyr. As such, prior experience with Zephyr will be helpful when working with Golioth's Zephyr Device SDK. Refer to Zephyr's [detailed documentation](https://docs.zephyrproject.org/) when running into issues. - -### Install West - -import SetupZephyr from '/docs/partials-common/setup-zephyr.md' - - - -### Install Golioth Zephyr SDK - -import InstallZephyrSDK from '/docs/partials-common/install-zephyr-sdk.md' - - - -### Installing the Zephyr SDK Toolchain - -import InstallZephyrSDKtoolchain from '/docs/partials-common/install-zephyr-sdk-toolchain.md' - - - -### Install Espressif (ESP32) Binary Blobs - -import InstallEspressifToolchain from '/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/\_partials/install-espressif-toolchain.md' - - - -### Sample build - -Your system is all set up and ready to start building & flashing with Zephyr. Verify by building a minimal sample: - -import BuildSample from '/docs/partials-common/sample-build.mdx' - - diff --git a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/3-flash-sample.md b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/3-flash-sample.md deleted file mode 100644 index 66b7a58d..00000000 --- a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/3-flash-sample.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: flash-sample -title: Flashing with samples ---- - -Now we're getting to the good stuff - working with hardware! The sample project provided will demonstrate a device securely communicating with Golioth and will also introduce the first device service for _logging_. - -The sample we'll be using is called `hello`, which logs a "hello" message using the _Logging Device Service_. Here's a snippet of the `main()` function: - -```cpp -void main(void) -{ - int r; - int counter = 0; - - LOG_DBG("Start Hello sample"); - - k_sem_take(&golioth_client_ready, K_FOREVER); - - while (true) { - LOG_INF("Sending hello! %d", counter++); - - r = golioth_send_hello(client); - if (r < 0) { - LOG_WRN("Failed to send hello!"); - } - - k_sleep(K_SECONDS(5)); - } - - LOG_DBG("Quit"); -} -``` - -If you're familiar with Zephyr you may recognized the `LOG_*` functions. That's because Golioth tries to use Zephyr APIs whenever it can. In this instance, the Logging Device Service is a cloud-enabled backend for Zephyr's [logging](https://docs.zephyrproject.org/latest/reference/logging/index.html) library. In this way, Golioth can reuse well-tested libraries, reduce code size through shared code, and feel idiomatic to developers who are comfortable with Zephyr. - -### Building `hello` - -Samples can be found in the Zephyr SDK in the folder `modules/lib/golioth/samples`. We recommend running the commands below from the `modules/lib/golioth` folder. - -``` -cd ~/golioth-zephyr-workspace/modules/lib/golioth -``` - -Zephyr uses [Kconfig](https://docs.zephyrproject.org/latest/guides/kconfig/index.html) to manage build settings at scale. Kconfig values can be set a number of ways but for this example we'll take a simple route by modifying `prj.conf`. - -Open `samples/hello/prj.conf` in your editor of choice and add these fields: - -``` -CONFIG_GOLIOTH_SAMPLE_WIFI_SSID="YOUR_NETWORK_NAME" -CONFIG_GOLIOTH_SAMPLE_WIFI_PSK="YOUR_NETWORK_PW" - -CONFIG_GOLIOTH_SAMPLE_HARDCODED_PSK_ID="DEVICE_CRED_ID" -CONFIG_GOLIOTH_SAMPLE_HARDCODED_PSK="DEVICE_PSK" -``` - -Set the PSK & PSK ID to match what was used during the provisioning step and the Wi-Fi network credentials to match your network. - -After saving, build the sample with the new settings applied. - -``` -west build -b esp32 samples/hello -p -``` - -### Flashing the device - -Flashing is a simple `west` command away. - -``` -west flash --esp-device=/dev/cu.usbserial-1337 -``` - -:::note -Your ESP32 will likely be at a different location, so adjust the `flash` command accordingly. -::: - -### Verify with serial output - -You can verify that everything is working by connecting to the device over a serial console using a tool like `screen`: - -``` -screen /dev/cu.usbserial-1337 115200 -``` - -This is an snippet from the serial console: - -``` -[00:00:00.000,000] golioth_hello.main: Start CoAP-client sample -[00:00:00.000,000] golioth_hello: Initializing golioth client -[00:00:00.000,000] golioth_hello: Golioth client initialized -[00:00:00.000,000] golioth_hello: Sending hello! 0 -[00:00:00.000,000] golioth_hello.main: Debug info! 1 -[00:00:00.000,000] golioth_hello.func_1: Log 1: 1 -[00:00:00.000,000] golioth_hello.func_2: Log 2: 1 -[00:00:00.000,000] golioth_hello: Warn: 1 -[00:00:00.000,000] golioth_hello: Err: 1 -[00:00:00.000,000] golioth_hello: Starting connect -[00:00:00.000,000] golioth_hello: Client connected! -``` - -These are just the logs the device has created but they're also being sent to Golioth for later use. The next step will show you how to view logs from the cloud. diff --git a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/4-view-logs.md b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/4-view-logs.md deleted file mode 100644 index 1beb7a63..00000000 --- a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/4-view-logs.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -id: view-logs -title: View Cloud Data ---- - -### Viewing logs via the Golioth Console Interface - -import LogsConsole from '/docs/partials-common/viewing-logs-console.md' - - - -### Viewing logs via Goliothctl - -import LogsCLI from '/docs/partials-common/viewing-logs-cli.md' - - diff --git a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/README.md b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/README.md deleted file mode 100644 index 09abe880..00000000 --- a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/README.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -id: overview -title: ESP32 Zephyr Quickstart -slug: /firmware/hardware/esp32/zephyr-quickstart ---- - -:::caution -You must first follow the [Golioth Platform Quickstart](/getting-started/) before attempting this guide. -::: - -This work-through will demonstrate how to quickly connect an Espressif [ESP32 DevKitC](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html) with [Zephyr](https://www.zephyrproject.org) & [`west`](https://docs.zephyrproject.org/latest/guides/west/index.html). Remember, we first need to install the main tool you need to work with Golioth, `goliothctl` using the Golioth Platform Guide. - -:::note - -Golioth's Zephyr SDK will work with other ESP32 devkits and many other devices but require additional setup. We've picked a "reference" board to provide a consistent getting started experience. - -::: diff --git a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_category_.yml b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_category_.yml deleted file mode 100644 index a2ee0a24..00000000 --- a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_category_.yml +++ /dev/null @@ -1,4 +0,0 @@ -label: 'Zephyr Quickstart' -position: 2.5 # float position is supported -collapsible: true # make the category collapsible -collapsed: false # keep the category open by default \ No newline at end of file diff --git a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-unix.md b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-unix.md deleted file mode 100644 index f923bd3d..00000000 --- a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-unix.md +++ /dev/null @@ -1,7 +0,0 @@ -Use `west` to install the WiFi and Bluetooth binary blobs necessary for building Espressif projects. - -```shell -cd ~/golioth-zephyr-workspace -west blobs fetch hal_espressif -``` - diff --git a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-windows.md b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-windows.md deleted file mode 100644 index c305cc10..00000000 --- a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain-windows.md +++ /dev/null @@ -1,7 +0,0 @@ -Use `west` to install the WiFi and Bluetooth binary blobs necessary for building Espressif projects. - -```shell -cd c:\golioth-zephyr-workspace -west blobs fetch hal_espressif -``` - diff --git a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain.md b/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain.md deleted file mode 100644 index 331e39de..00000000 --- a/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/_partials/install-espressif-toolchain.md +++ /dev/null @@ -1,27 +0,0 @@ -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - -import InstallEspressifToolchainUnix from '/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/\_partials/install-espressif-toolchain-unix.md' -import InstallEspressifToolchainWindows from '/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/\_partials/install-espressif-toolchain-windows.md' - - - - - - - - - - - - - diff --git a/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/2-set-up-zephyr.md b/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/2-set-up-zephyr.md deleted file mode 100644 index 7585cd37..00000000 --- a/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/2-set-up-zephyr.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: set-up-zephyr -title: Set up Zephyr for i.MX RT1060 ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Golioth can be added to a device with _Device SDKs_ which are based on different embedded Operating Systems. Currently Golioth targets the [Zephyr Project](https://www.zephyrproject.org/) and builds upon the APIs & tools of Zephyr. As such, prior experience with Zephyr will be helpful when working with Golioth's Zephyr Device SDK. Refer to Zephyr's [detailed documentation](https://docs.zephyrproject.org/) when running into issues. - -### Install West - -import SetupZephyr from '/docs/partials-common/setup-zephyr.md' - - - -### Install Golioth Zephyr SDK - -import InstallZephyrSDK from '/docs/partials-common/install-zephyr-sdk.md' - - - -### Installing the Zephyr SDK Toolchain - -import InstallZephyrSDKtoolchain from '/docs/partials-common/install-zephyr-sdk-toolchain.md' - - - -### Sample build - -Your system is all set up and ready to start building & flashing with Zephyr. Verify by building a minimal sample: - -import BuildSample from '/docs/partials-common/sample-build.mdx' - - diff --git a/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/3-flash-sample.md b/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/3-flash-sample.md deleted file mode 100644 index 014dc065..00000000 --- a/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/3-flash-sample.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: flash-sample -title: Flashing with samples ---- - -Now we're getting to the good stuff - working with hardware! The sample project provided will demonstrate a device securely communicating with Golioth and will also introduce the first device service for _logging_. - -The sample we'll be using is called `hello`, which logs a "hello" message using the _Logging Device Service_. Here's a snippet of the `main()` function: - -```cpp -void main(void) -{ - int counter = 0; - int err; - - LOG_DBG("Start Hello sample"); - - if (IS_ENABLED(CONFIG_GOLIOTH_SAMPLES_COMMON)) { - net_connect(); - } - - client->on_connect = golioth_on_connect; - client->on_message = golioth_on_message; - golioth_system_client_start(); - - k_sem_take(&connected, K_FOREVER); - - while (true) { - LOG_INF("Sending hello! %d", counter); - - err = golioth_send_hello(client); - if (err) { - LOG_WRN("Failed to send hello!"); - } - ++counter; - k_sleep(K_SECONDS(5)); - } -} -``` - -If you're familiar with Zephyr you may recognized the `LOG_*` functions. That's because Golioth tries to use Zephyr APIs whenever it can. In this instance, the Logging Device Service is a cloud-enabled backend for Zephyr's [logging](https://docs.zephyrproject.org/latest/reference/logging/index.html) library. In this way, Golioth can reuse well-tested libraries, reduce code size through shared code, and feel idiomatic to developers who are comfortable with Zephyr. - -### Building `hello` - -Samples can be found in the Zephyr SDK in the folder `modules/lib/golioth/samples`. We recommend running the commands below from the `modules/lib/golioth` folder. - -``` -cd ~/golioth-zephyr-workspace/modules/lib/golioth -``` - -Zephyr uses [Kconfig](https://docs.zephyrproject.org/latest/guides/kconfig/index.html) to manage build settings at scale. Kconfig values can be set a number of ways but for this example we'll take a simple route by modifying `prj.conf`. - -Open `samples/hello/prj.conf` in your editor of choice and add these fields: - -``` -CONFIG_GOLIOTH_SAMPLE_HARDCODED_PSK_ID="DEVICE_CRED_ID" -CONFIG_GOLIOTH_SAMPLE_HARDCODED_PSK="DEVICE_PSK" -``` - -Set the PSK & PSK ID to match what was used during the provisioning step. - -After saving, build the sample with the new settings applied. - -``` -west build -b mimxrt1060_evkb samples/hello -p -``` - -### Flashing the device - -Flashing is a simple `west` command away. - -``` -west flash -``` - -:::tip -Remember to connect your J-Link programmer and power the board via USB, or you can use the on-board debug circuit with J-Link firmware. Find details for both methods in [NXP's programming guide](https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/Using-J-Link-with-MIMXRT1060-EVKB/ta-p/1452717). -::: - -### Verify with serial output - -You can verify that everything is working by connecting to the device over a serial console using a tool like `screen`: - -``` -screen /dev/ttyACM0 115200 -``` - -This is an snippet from the serial console: - -``` -[00:00:00.000,000] golioth_hello.main: Start CoAP-client sample -[00:00:00.000,000] golioth_hello: Initializing golioth client -[00:00:00.000,000] golioth_hello: Golioth client initialized -[00:00:00.000,000] golioth_hello: Sending hello! 0 -[00:00:00.000,000] golioth_hello.main: Debug info! 1 -[00:00:00.000,000] golioth_hello.func_1: Log 1: 1 -[00:00:00.000,000] golioth_hello.func_2: Log 2: 1 -[00:00:00.000,000] golioth_hello: Warn: 1 -[00:00:00.000,000] golioth_hello: Err: 1 -[00:00:00.000,000] golioth_hello: Starting connect -[00:00:00.000,000] golioth_hello: Client connected! -``` - -These are just the logs the device has created but they're also being sent to Golioth for later use. The next step will show you how to view logs from the cloud. diff --git a/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/4-view-logs.md b/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/4-view-logs.md deleted file mode 100644 index 1beb7a63..00000000 --- a/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/4-view-logs.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -id: view-logs -title: View Cloud Data ---- - -### Viewing logs via the Golioth Console Interface - -import LogsConsole from '/docs/partials-common/viewing-logs-console.md' - - - -### Viewing logs via Goliothctl - -import LogsCLI from '/docs/partials-common/viewing-logs-cli.md' - - diff --git a/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/README.md b/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/README.md deleted file mode 100644 index 736fab9a..00000000 --- a/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/README.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: overview -title: NXP i.MX RT1060 Zephyr Quickstart -slug: /firmware/hardware/mimxrt1060_evkb/zephyr-quickstart ---- - -This walk-through will demonstrate how to quickly connect an NXP [MIMXRT1060_EVKB Evaluation Kit](https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/i-mx-rt1060-evaluation-kit:MIMXRT1060-EVKB) with [Zephyr](https://www.zephyrproject.org) & [`west`](https://docs.zephyrproject.org/latest/guides/west/index.html). - -:::tip -You must first follow the [Golioth Platform Quickstart](/getting-started/) to set up Golioth device credentials before attempting this guide. -::: - -:::note -The MIMXRT1060_EVKB is very similar to the MIMXRT1060_EVK. We will be using the newer "B" version in this quickstart. Other boards based around NXP processors will work with Golioth's Zephyr SDK, but require additional setup (like creating board-specific configuration files). We've chosen the MIMXRT1060_EVKB to provide a consistent getting started experience. -::: diff --git a/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/_category_.yml b/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/_category_.yml deleted file mode 100644 index a2ee0a24..00000000 --- a/docs/firmware/hardware/3-mimxrt1060_evkb/1-zephyr-quickstart/_category_.yml +++ /dev/null @@ -1,4 +0,0 @@ -label: 'Zephyr Quickstart' -position: 2.5 # float position is supported -collapsible: true # make the category collapsible -collapsed: false # keep the category open by default \ No newline at end of file diff --git a/docs/firmware/hardware/3-mimxrt1060_evkb/README.md b/docs/firmware/hardware/3-mimxrt1060_evkb/README.md deleted file mode 100644 index 9188946b..00000000 --- a/docs/firmware/hardware/3-mimxrt1060_evkb/README.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -id: overview -title: NXP i.MX RT1060 Overview -slug: /firmware/hardware/mimxrt1060_evkb ---- - -## What is the i.MX RT1060? - -The i.MX RT1060 is a family of crossover MCUs from [NXP Semiconductor](https://www.nxp.com/). They feature native Ethernet for connectivity, and a wide range of hardware peripherals surrounding an Arm Cortex-M7 running at up to 600 MHz. There are multiple evaluation kits available, we have chosen the MIMXRT1060_EVKB for this guide, which features the MIMXRT1062DVL6A processor. - -The NXP team maintains top-tier support for their processors in Zephyr. This, in combination with the excellent connectivity, wide range of hardware peripherals, and extremely powerful core, is why Golioth chose the i.MX RT1060 as one of the first platforms to support. - -## Terminology - -* **i.MX RT1060** - A family of Ethernet-capable processors from [NXP Semiconductor](https://www.nxp.com/). -* **mimxrt1060_evkb** - The evaluation board officially supported by Golioth. - * The lower-case naming convention is used when building and flashing Zephyr applications. - * [Evaluation kit information page](https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/i-mx-rt1060-evaluation-kit:MIMXRT1060-EVKB). diff --git a/docs/firmware/hardware/3-mimxrt1060_evkb/_category_.yml b/docs/firmware/hardware/3-mimxrt1060_evkb/_category_.yml deleted file mode 100644 index c05ac5d1..00000000 --- a/docs/firmware/hardware/3-mimxrt1060_evkb/_category_.yml +++ /dev/null @@ -1,4 +0,0 @@ -label: 'i.MX RT1060' -position: 3 # float position is supported -collapsible: true # make the category collapsible -collapsed: true # keep the category open by default diff --git a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/2-set-up-zephyr.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/2-set-up-zephyr.md deleted file mode 100644 index bdac0979..00000000 --- a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/2-set-up-zephyr.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: set-up-zephyr -title: Set up Zephyr for nRF9160 ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -### Zephyr Setup Overview - -Golioth is implemented on IoT devices using [Device SDKs](/firmware). These are based on different embedded Real Time Operating Systems (RTOS). Currently Golioth targets the [Zephyr Project](https://www.zephyrproject.org/) and builds upon the APIs & tools of Zephyr. As such, prior experience with Zephyr will be helpful when working with [Golioth's Zephyr Device SDK](https://github.com/golioth/golioth-zephyr-sdk). Refer to Zephyr's [detailed documentation](https://docs.zephyrproject.org/) when running into issues. - -The nRF9160 Feather and all Nordic Semiconductor devices utilizing Zephyr require the [nRF Connect SDK (NCS)](https://www.nordicsemi.com/Products/Development-software/nRF-Connect-SDK). Nordic Semiconductor maintains a fork of the Zephyr project that includes some distinct features and IP, including the firmware for the cellular modem on the nRF9160. We will install the nRF Connect SDK in a directory in your home location separate from other Zephyr projects shown for Golioth (in a directory called `golioth-ncs-workspace`). - -### Install West - -import SetupWestNRF91 from '/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/\_partials/setup-west-nrf91.md' - - - -### Installing the NRF Connect SDK - -import InstallNRFSDK from '/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/\_partials/install-nrf-connect-sdk.md' - - - -### Installing the Zephyr SDK Toolchain - -The nRF9160 is an ARM based device, so we will use the ARM toolchains (gcc, gdb, etc) included in the Zephyr SDK - -import InstallZephyrSDKtoolchain from '/docs/partials-common/install-zephyr-sdk-toolchain.md' - - - -### Build firmware for the nRF9160 - -Your system is all set up and ready to start building & flashing with Zephyr. Verify by building a minimal sample for the nRF9160 DK: - -import BuildFirmwareFor9160 from '/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/\_partials/build-fw-nrf91.md' - - - -### Flash firmware to the device - -If you are using a J-Link hardware programmer and already have the software for that tool set up on your system, flashing firmware is as simple as running: - -```bash -west flash -``` - -The nRF9160 DK acts as a J-Link hardware programmer. `west` will automatically work with J-Link as long as the supporting software is installed on your system. The next section will walk through installing that software. diff --git a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/3-hardware-programmer.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/3-hardware-programmer.md deleted file mode 100644 index 01f04cbc..00000000 --- a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/3-hardware-programmer.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: hardware-programmer -title: Hardware Programmer ---- - -## Installing Tools - -Nordic parts can be flashed using a J-Link programmer. The nrf9160 DK will behave like a J-Link programmer when connected to USB. Flashing via a hardware programmer requires the `nrfjprog` tool. - -### Installing the nRF Command Line Tools (for hardware programmers) - -Zephyr uses `nrfjprog` to flash nRF9160 targets using a hardware programmer like the Segger J-Link, or the debugger that is built into the nRF9160 DK board. This tool is part of the nRF Command Line Tools which we will install along with the Segger tool. - -1. Go to Segger and download the latest [J-Link Software and Documentation Pack](https://www.segger.com/downloads/jlink) - -2. Run the J-Link installer - - ```bash - sudo dpkg -i JLink_Linux_V760f_x86_64.deb - ``` - -3. Go to the [nRF Command Line Tools](https://www.nordicsemi.com/Products/Development-tools/nrf-command-line-tools/download) page. Scroll down, select your operating system, and download the installer package. - -4. Run the nRF Command Line Tools installer - - ```bash - sudo dpkg -i nrf-command-line-tools_10.15.2_amd64.deb - ``` - -## Flashing Firmware - -During development we suggest using a hardware programmer like the Segger J-Link. This approach avoids the need to put a device into DFU mode, flashing takes far less time than when using the bootloader, and the J-Link can automatically reset the target. This method is built into Zephyr, and a hardware programmer can be used for on-chip debugging. - -1. Build the project - - ```bash - cd ~/golioth-ncs-workspace/zephyr - west build -b nrf9160dk_nrf9160_ns samples/basic/blinky -p - ``` - -2. Connect the J-Link to USB and to the target board - - * The nRF9160 DK has J-Link functionality built in and will identify as a hardware programmed when connected via USB - -3. Flash the firmware - - ```bash - west flash - ``` diff --git a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/4-carrier-setup.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/4-carrier-setup.md deleted file mode 100644 index 3407740d..00000000 --- a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/4-carrier-setup.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -id: carrier-setup -title: Getting connected to your carrier ---- - - -We have tested the nRF91 with the following carriers internally: -* Hologram -* Soracom -* Verizon M2M - -First, build and flash the at_client example to your nrf9160 board with the following commands: - -``` -west build -p auto -b nrf9160dk_nrf9160_ns nrf/samples/nrf9160/at_client -west flash -``` - -Insert activated SIM into the nrf9160 board and follow the instructions from [Nordic](https://infocenter.nordicsemi.com/index.jsp?topic=%2Fug_link_monitor%2FUG%2Flink_monitor%2Flm_intro.html) to download and install the LTE Monitor application - -With the LTE Montior appication open, power on the nrf9160 board and select from the drop-down menu near the top of the window. Also, uncheck Flow control and Auto device/port filter: - -![Console](./assets/LTE-Link-Monitor.png) - -Test connectivity by pressing the AT+CFUN? button on the LTE Link Montior application. Serial output will stream to the Monitor application. Verify that the board has connected through the SIM portal of the SIM being tested. If the SIM reports that it has connected then the board and SIM are ready to proceed with Golioth application examples. - -:::note -Thanks goes to Jared Wolff for the LTE Montitor technique. You can read the original work at: -https://www.jaredwolff.com/the-nrf9160-feather-connects/ -::: - diff --git a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/5-flash-sample.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/5-flash-sample.md deleted file mode 100644 index 1570a190..00000000 --- a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/5-flash-sample.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -id: flash-sample -title: Flashing an nRF9160 with samples ---- - -Golioth sample code uses the (cellular) network interface provided by the nRF9160 and passes packets back to the Golioth network. The sample you should test first is called `hello`, which logs a "hello" message using the _Logging Device Service_. Here's snippet of the `main()` function: - -```cpp -void main(void) -{ - int r; - int counter = 0; - - LOG_DBG("Start Hello sample"); - - k_sem_take(&golioth_client_ready, K_FOREVER); - - while (true) { - LOG_INF("Sending hello! %d", counter++); - - r = golioth_send_hello(client); - if (r < 0) { - LOG_WRN("Failed to send hello!"); - } - - k_sleep(K_SECONDS(5)); - } - - LOG_DBG("Quit"); -} -``` - -If you're familiar with Zephyr you may recognized the `LOG_*` functions. That's because Golioth uses Zephyr APIs whenever it can. In this instance, the Logging Device Service is a cloud-enabled backend for Zephyr's [logging](https://docs.zephyrproject.org/latest/reference/logging/index.html) library. Golioth is building upon well-tested libraries, reducing the size through shared code, and retaining the idiomatic feel for developers who are comfortable with Zephyr. - -### Building `hello` - -Samples can be found in Golioth's nRF Connect based SDK ('golioth-ncs-workspace') in the folder `modules/lib/golioth/samples`. We recommend running the commands below from the `modules/lib/golioth` folder. - -```console -cd ~/golioth-ncs-workspace/modules/lib/golioth -``` - -Zephyr uses [Kconfig](https://docs.zephyrproject.org/latest/guides/kconfig/index.html) to manage build settings at scale. Kconfig values can be set a number of ways but for this example we'll take a simple route by modifying `prj.conf`. - -Open `samples/hello/prj.conf` in your editor of choice and add these fields: - -```console -CONFIG_GOLIOTH_SAMPLE_HARDCODED_PSK_ID="DEVICE_CRED_ID" -CONFIG_GOLIOTH_SAMPLE_HARDCODED_PSK="DEVICE_PSK" -``` - -Set the PSK & PSK ID to match what was used during the provisioning step. Networking validation is taken care of by your SIM card, which was tested in the [carrier setup section](/firmware/hardware/nrf91/zephyr-quickstart/carrier-setup) - -After saving, build the sample (for the [nRF9160 DK](https://www.nordicsemi.com/Products/Development-hardware/nRF9160-DK/GetStarted)) with the new settings applied. - -```console -west build -b nrf9160dk_nrf9160_ns samples/hello -p -``` - -### Flashing the device - -Flash the device by running the command: - -```console -west flash -``` - -If this command fails ensure that the [nRF Command Line tools](https://www.nordicsemi.com/Products/Development-tools/nrf-command-line-tools/download) and [Jlink Software and Documentation Pack](https://www.segger.com/downloads/jlink) are downloaded and installed on the development system. - -### Verify with serial output - -You can verify that everything is working by connecting to the device over a serial console using a tool like `screen`: - -```console -screen /dev/cu.usbserial-1337 115200 -``` - -This is an snippet from the serial console: - -```console -uart:~$ *** Booting Zephyr OS build v2.6.99-ncs1-1 *** -[00:00:00.208,984] golioth_system: Initializing -[00:01:08.349,792] golioth_hello.main: Start Hello sample -[00:01:08.349,822] golioth_hello: Sending hello! 0 -[00:01:08.350,341] golioth_hello: Failed to send hello! -[00:01:08.350,433] golioth_system: Starting connect -[00:01:08.682,373] golioth_system: Client connected! -[00:01:13.350,402] golioth_hello: Sending hello! 1 -[00:01:18.351,745] golioth_hello: Sending hello! 2 -[00:01:23.361,450] golioth_hello: Sending hello! 3 -``` - -These are just the logs the device has created but they're also being sent to Golioth for later use. The next step will show you how to view logs from the cloud. diff --git a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/6-view-logs.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/6-view-logs.md deleted file mode 100644 index cf5f7fb1..00000000 --- a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/6-view-logs.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -id: view-logs -title: View Logs on an nRF91 ---- - -### Viewing logs via the Golioth Console Interface - -import LogsConsole from '/docs/partials-common/viewing-logs-console.md' - - - -### Viewing logs via Goliothctl - -import LogsCLI from '/docs/partials-common/viewing-logs-cli.md' - - diff --git a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/README.md b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/README.md deleted file mode 100644 index 295880b5..00000000 --- a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/README.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -id: overview -title: nRF9160 Zephyr Quickstart -slug: /firmware/hardware/nrf91/zephyr-quickstart ---- - -:::caution -You must first follow the [Golioth Platform Quickstart](/getting-started) before attempting this guide. -::: - -This walk-through will demonstrate how to quickly connect an nRF9160 based device to Golioth. The [Nordic nRF9160 DK](https://www.nordicsemi.com/Products/Development-hardware/nRF9160-DK) is officially supported by the Golioth SDK and will be used in this demonstration. - -See the [Hardware Catalog](/firmware/hardware/catalog/search) search tool for more devices that use the nRF9160. diff --git a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_category_.yml b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_category_.yml deleted file mode 100644 index a2ee0a24..00000000 --- a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_category_.yml +++ /dev/null @@ -1,4 +0,0 @@ -label: 'Zephyr Quickstart' -position: 2.5 # float position is supported -collapsible: true # make the category collapsible -collapsed: false # keep the category open by default \ No newline at end of file diff --git a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/assets/LTE-Link-Monitor.png b/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/assets/LTE-Link-Monitor.png deleted file mode 100644 index a17d8e1a7629e6a37d48f985dbbf53e857fab8cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77197 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%0Dr3ecRT1X98PNFs&@8DwfD< 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 ### Installing the Golioth Zephyr SDK for NCS -import InstallNRFSDK from '/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/\_partials/install-nrf-connect-sdk.md' +import InstallNRFSDK from '/docs/partials-common/install-nrf-connect-sdk.md' @@ -65,7 +65,7 @@ Zephyr uses `nrfjprog` to flash Nordic targets using a hardware programmer like Your system is all set up and ready to start building & flashing with Zephyr. Verify by building a minimal sample for the nRF9160 DK: -import BuildFirmwareFor9160 from '/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/\_partials/build-fw-nrf91.md' +import BuildFirmwareFor9160 from '/docs/partials-common/build-fw-nrf91.md' diff --git a/docs/firmware/zephyr-device-sdk/firmware-upgrade/2-build-sample-application.md b/docs/firmware/zephyr-device-sdk/firmware-upgrade/2-build-sample-application.md index e3b6800c..5dc9336a 100644 --- a/docs/firmware/zephyr-device-sdk/firmware-upgrade/2-build-sample-application.md +++ b/docs/firmware/zephyr-device-sdk/firmware-upgrade/2-build-sample-application.md @@ -31,10 +31,10 @@ updated firmware version and report the results to the Golioth Console. ### 1. Initial build and flash -Navigate to the Golioth module in your zephyr install. If you followed [our -nRF9160 Zephyr Quickstart](/firmware/hardware/nrf91/zephyr-quickstart) this will be in -the `golioth-ncs-workspace/module/lib/golioth` directory. Build and flash the -sample code. +Navigate to the Golioth module in your zephyr install. If you followed [Golioth +NCS Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr-ncs) +this will be in the `golioth-ncs-workspace/module/lib/golioth` directory. Build +and flash the sample code. ```bash west build -b nrf9160dk_nrf9160_ns samples/dfu -p diff --git a/docs/landing_page.md b/docs/landing_page.md index 11a8d5f7..49378dfe 100644 --- a/docs/landing_page.md +++ b/docs/landing_page.md @@ -36,13 +36,11 @@ hardware. | Vendor | SDK | Quickstart | Note | | ---------- | -------------------- | ---------- | ---- | | Espressif | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | [ESP32 ESP-IDF Quickstart](/firmware/hardware/esp32/espidf-quickstart/set-up-espidf) | Use for ESP32 MCUs | -| Espressif | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [ESP32 Zephyr Quickstart](/firmware/hardware/esp32/zephyr-quickstart/set-up-zephyr) | Use for ESP32 MCUs | +| Espressif | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [Golioth Zephyr Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr) | Use for ESP32 MCUs | | Infineon | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | ModusToolbox™ [Readme](https://github.com/golioth/golioth-firmware-sdk/tree/main/examples/modus_toolbox) / [Webinar](https://blog.golioth.io/a-recap-of-how-to-collect-data-from-iot-sensors-using-golioth-and-the-infineon-modustoolbox/) | Use for Infineon MCUs like PSoC6 | -| Nordic | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [nRF9160 Zephyr Quickstart](/firmware/hardware/nrf91/zephyr-quickstart/set-up-zephyr) | Use for Nordic MCUs like nRF9160 and nRF7002 | -| NXP | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [mimxrt1060evkb Zephyr Quickstart](/firmware/hardware/mimxrt1060_evkb/zephyr-quickstart/set-up-zephyr) | Use for NXP MCUs like i.MX RT1062 and i.MX RT1024 | -| Other Vendors | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [mimxrt1060evkb Zephyr Quickstart](/firmware/hardware/mimxrt1060_evkb/zephyr-quickstart/set-up-zephyr) | Many other MCUs are supported by Zephyr will work with Golioth! Follow this quickstart and substitute your board name in the build examples. | - -:::info Don't see your hardware listed? +| Nordic | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [Golioth NCS Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr-ncs) | Use for Nordic MCUs like nRF9160 and nRF7002 | +| NXP | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [Golioth Zephyr Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr) | Use for NXP MCUs like i.MX RT1062 and i.MX RT1024 | +| Other Vendors | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [Golioth Zephyr Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr) | Many other MCUs are supported by Zephyr will work with Golioth! Follow this quickstart and substitute your board name in the build examples. | The Golioth Firmware SDK includes a [porting guide](https://github.com/golioth/golioth-firmware-sdk/blob/main/docs/Porting_Guide.md) diff --git a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/build-fw-nrf91.md b/docs/partials-common/build-fw-nrf91.md similarity index 100% rename from docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/build-fw-nrf91.md rename to docs/partials-common/build-fw-nrf91.md diff --git a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk-unix.md b/docs/partials-common/install-nrf-connect-sdk-unix.md similarity index 100% rename from docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk-unix.md rename to docs/partials-common/install-nrf-connect-sdk-unix.md diff --git a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk-windows.md b/docs/partials-common/install-nrf-connect-sdk-windows.md similarity index 100% rename from docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk-windows.md rename to docs/partials-common/install-nrf-connect-sdk-windows.md diff --git a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk.md b/docs/partials-common/install-nrf-connect-sdk.md similarity index 74% rename from docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk.md rename to docs/partials-common/install-nrf-connect-sdk.md index 2c3377ee..2c0fd4ab 100644 --- a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/install-nrf-connect-sdk.md +++ b/docs/partials-common/install-nrf-connect-sdk.md @@ -16,8 +16,8 @@ values={[ {label: 'Windows', value: 'windows'}, ]}> -import InstallNRFSDKUnix from '/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/\_partials/install-nrf-connect-sdk-unix.md' -import InstallNRFSDKWindows from '/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/\_partials/install-nrf-connect-sdk-windows.md' +import InstallNRFSDKUnix from '/docs/partials-common/install-nrf-connect-sdk-unix.md' +import InstallNRFSDKWindows from '/docs/partials-common/install-nrf-connect-sdk-windows.md' diff --git a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/setup-west-nrf91-windows.md b/docs/partials-common/setup-west-nrf91-windows.md similarity index 100% rename from docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/setup-west-nrf91-windows.md rename to docs/partials-common/setup-west-nrf91-windows.md diff --git a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/setup-west-nrf91.md b/docs/partials-common/setup-west-nrf91.md similarity index 90% rename from docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/setup-west-nrf91.md rename to docs/partials-common/setup-west-nrf91.md index 4f30a070..62cc1331 100644 --- a/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/_partials/setup-west-nrf91.md +++ b/docs/partials-common/setup-west-nrf91.md @@ -44,7 +44,7 @@ brew install cmake ninja gperf python3 ccache qemu dtc -import SetupWestNRF91Windows from '/docs/firmware/hardware/4-nrf91/2-zephyr-quickstart/\_partials/setup-west-nrf91-windows.md' +import SetupWestNRF91Windows from '/docs/partials-common/setup-west-nrf91-windows.md' diff --git a/docs/partials-common/unused/install-device-toolchain.md b/docs/partials-common/unused/install-device-toolchain.md deleted file mode 100644 index 856dae8f..00000000 --- a/docs/partials-common/unused/install-device-toolchain.md +++ /dev/null @@ -1,43 +0,0 @@ -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - - -import SetupEsp from '/docs/firmware/hardware/2-esp32/2-zephyr-quickstart/\_partials/install-espressif-toolchain.md' - - - - - - -#### Install ARM Toolchain - -You can also follow the Getting started Guide from Zephyr docs website and install the required tools. - - - -#### Install ARM Toolchain - -You can also follow the [Getting started Guide](https://docs.zephyrproject.org/latest/getting_started/toolchain_3rd_party_x_compilers.html#gnu-arm-embedded) from Zephyr docs website and install the required tools. - - - -import InstallQemuSdk from '/docs/partials-common/install-qemu-sdk.md' - - - - - - -Follow more specific instructions for each supported board architecture on [Zephyr Website](https://docs.zephyrproject.org/latest/guides/beyond-GSG.html#gs-toolchain). - - From 371211898774e924152136c3aa6381bfb04b0780 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Tue, 28 Nov 2023 09:44:01 -0600 Subject: [PATCH 34/88] firmware: Add setup for ESP-IDF Detail how to setup a build environment for ESP-IDF that is not device specific. Signed-off-by: Mike Szczys --- .../build-environment/esp-idf.md} | 9 ++++----- docs/landing_page.md | 2 +- .../install-espidf-environment.md | 0 .../_partials => partials-common}/install-espidf.md | 0 .../install-golioth-firmware-sdk.md | 0 .../install-sample-build.md | 0 6 files changed, 5 insertions(+), 6 deletions(-) rename docs/firmware/{hardware/2-esp32/1-espidf-quickstart/2-set-up-espidf.md => golioth-firmware-sdk/build-environment/esp-idf.md} (55%) rename docs/{firmware/hardware/2-esp32/1-espidf-quickstart/_partials => partials-common}/install-espidf-environment.md (100%) rename docs/{firmware/hardware/2-esp32/1-espidf-quickstart/_partials => partials-common}/install-espidf.md (100%) rename docs/{firmware/hardware/2-esp32/1-espidf-quickstart/_partials => partials-common}/install-golioth-firmware-sdk.md (100%) rename docs/{firmware/hardware/2-esp32/1-espidf-quickstart/_partials => partials-common}/install-sample-build.md (100%) diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/2-set-up-espidf.md b/docs/firmware/golioth-firmware-sdk/build-environment/esp-idf.md similarity index 55% rename from docs/firmware/hardware/2-esp32/1-espidf-quickstart/2-set-up-espidf.md rename to docs/firmware/golioth-firmware-sdk/build-environment/esp-idf.md index 75a310da..4828aa2f 100644 --- a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/2-set-up-espidf.md +++ b/docs/firmware/golioth-firmware-sdk/build-environment/esp-idf.md @@ -1,5 +1,4 @@ --- -id: set-up-espidf title: Set up ESP-IDF for ESP32 --- @@ -13,24 +12,24 @@ the process of installing both the ESP-IDF and the Golioth Firmware SDK. ### Install ESP-IDF -import SetupEspIdf from '/docs/firmware/hardware/2-esp32/1-espidf-quickstart/\_partials/install-espidf.md' +import SetupEspIdf from '/docs/partials-common/install-espidf.md' ### Install Golioth Firmware SDK -import InstallFirmwareSDK from '/docs/firmware/hardware/2-esp32/1-espidf-quickstart/\_partials/install-golioth-firmware-sdk.md' +import InstallFirmwareSDK from '/docs/partials-common/install-golioth-firmware-sdk.md' ### Set the ESP IDF environment variables -import InstallEspIdfEnv from '/docs/firmware/hardware/2-esp32/1-espidf-quickstart/\_partials/install-espidf-environment.md' +import InstallEspIdfEnv from '/docs/partials-common/install-espidf-environment.md' ### Sample build -import SampleBuild from '/docs/firmware/hardware/2-esp32/1-espidf-quickstart/\_partials/install-sample-build.md' +import SampleBuild from '/docs/partials-common/install-sample-build.md' diff --git a/docs/landing_page.md b/docs/landing_page.md index 49378dfe..e1b86968 100644 --- a/docs/landing_page.md +++ b/docs/landing_page.md @@ -35,7 +35,7 @@ hardware. | Vendor | SDK | Quickstart | Note | | ---------- | -------------------- | ---------- | ---- | -| Espressif | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | [ESP32 ESP-IDF Quickstart](/firmware/hardware/esp32/espidf-quickstart/set-up-espidf) | Use for ESP32 MCUs | +| Espressif | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | [Golioth ESP-IDF Build Environment](/firmware/golioth-firmware-sdk/build-environment/esp-idf) | Use for ESP32 MCUs | | Espressif | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [Golioth Zephyr Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr) | Use for ESP32 MCUs | | Infineon | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | ModusToolbox™ [Readme](https://github.com/golioth/golioth-firmware-sdk/tree/main/examples/modus_toolbox) / [Webinar](https://blog.golioth.io/a-recap-of-how-to-collect-data-from-iot-sensors-using-golioth-and-the-infineon-modustoolbox/) | Use for Infineon MCUs like PSoC6 | | Nordic | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [Golioth NCS Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr-ncs) | Use for Nordic MCUs like nRF9160 and nRF7002 | diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/_partials/install-espidf-environment.md b/docs/partials-common/install-espidf-environment.md similarity index 100% rename from docs/firmware/hardware/2-esp32/1-espidf-quickstart/_partials/install-espidf-environment.md rename to docs/partials-common/install-espidf-environment.md diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/_partials/install-espidf.md b/docs/partials-common/install-espidf.md similarity index 100% rename from docs/firmware/hardware/2-esp32/1-espidf-quickstart/_partials/install-espidf.md rename to docs/partials-common/install-espidf.md diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/_partials/install-golioth-firmware-sdk.md b/docs/partials-common/install-golioth-firmware-sdk.md similarity index 100% rename from docs/firmware/hardware/2-esp32/1-espidf-quickstart/_partials/install-golioth-firmware-sdk.md rename to docs/partials-common/install-golioth-firmware-sdk.md diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/_partials/install-sample-build.md b/docs/partials-common/install-sample-build.md similarity index 100% rename from docs/firmware/hardware/2-esp32/1-espidf-quickstart/_partials/install-sample-build.md rename to docs/partials-common/install-sample-build.md From 935b4a137d6aaed7694cf808277dd19a2e59dd36 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Thu, 30 Nov 2023 13:45:52 -0600 Subject: [PATCH 35/88] getting-started: move build-environment setup here Setting up a build environment is part of getting started. The firmware section will eventually include an "add Golioth to an existing project" section. Signed-off-by: Mike Szczys --- .../5-simulating-devices-qemu.md | 2 +- .../arm_mimxrt1060_evkb.md | 4 ++-- .../arm_nrf9160dk_nrf9160.md | 4 ++-- .../continuously-verified/xtensa_esp32.md | 4 ++-- .../2-build-sample-application.md | 3 ++- docs/firmware/zephyr-device-sdk/zephyr-app.md | 2 +- .../2-compile-example-code}/esp-idf.md | 0 .../2-compile-example-code}/zephyr-ncs.md | 0 .../2-compile-example-code}/zephyr.md | 0 docs/landing_page.md | 18 ++++++++++-------- docs/partials-common/prerequisites-device.md | 3 +-- 11 files changed, 21 insertions(+), 19 deletions(-) rename docs/{firmware/golioth-firmware-sdk/build-environment => getting-started/3-device-examples/2-compile-example-code}/esp-idf.md (100%) rename docs/{firmware/zephyr-device-sdk/build-environment => getting-started/3-device-examples/2-compile-example-code}/zephyr-ncs.md (100%) rename docs/{firmware/zephyr-device-sdk/build-environment => getting-started/3-device-examples/2-compile-example-code}/zephyr.md (100%) diff --git a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/5-simulating-devices-qemu.md b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/5-simulating-devices-qemu.md index aa095363..fae2ed33 100644 --- a/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/5-simulating-devices-qemu.md +++ b/docs/firmware/hardware/5-virtual-device/2-zephyr-quickstart/5-simulating-devices-qemu.md @@ -58,6 +58,6 @@ and run it: west build -t run ``` -This should have the same effect as running on a piece of hardware, as in the [Golioth NCS Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr) or [Golioth Zephyr Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr-ncs) quickstart guides +This should have the same effect as running on a piece of hardware, as in the [Golioth NCS Build Environment](/getting-started/device-examples/compile-example-code/zephyr) or [Golioth Zephyr Build Environment](/getting-started/device-examples/compile-example-code/zephyr-ncs) quickstart guides For more on networking, see [the QEMU page on the Zephyr Docs](https://docs.zephyrproject.org/latest/guides/networking/qemu_setup.html) diff --git a/docs/firmware/hardware/6-catalog/continuously-verified/arm_mimxrt1060_evkb.md b/docs/firmware/hardware/6-catalog/continuously-verified/arm_mimxrt1060_evkb.md index cb8b5f98..b0eb3b31 100644 --- a/docs/firmware/hardware/6-catalog/continuously-verified/arm_mimxrt1060_evkb.md +++ b/docs/firmware/hardware/6-catalog/continuously-verified/arm_mimxrt1060_evkb.md @@ -15,7 +15,7 @@ image: /img/boards/arm/mimxrt1060_evkb.jpg | ------------- | -------------------- | | Board ID | `mimxrt1060_evkb` | | Golioth Level | [Continuously verified](/firmware/hardware#continuously-verified-boards) | -| Golioth Quickstart | [Golioth Zephyr Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr) || Architecture | ARM | +| Golioth Quickstart | [Golioth Zephyr Build Environment](/getting-started/device-examples/compile-example-code/zephyr) || Architecture | ARM | | RAM* | 32768 kB | | Flash* | 8192 kB | @@ -23,7 +23,7 @@ image: /img/boards/arm/mimxrt1060_evkb.jpg ## Getting started -See our [Golioth Zephyr Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr) guide. +See our [Golioth Zephyr Build Environment](/getting-started/device-examples/compile-example-code/zephyr) guide. ## Supported features diff --git a/docs/firmware/hardware/6-catalog/continuously-verified/arm_nrf9160dk_nrf9160.md b/docs/firmware/hardware/6-catalog/continuously-verified/arm_nrf9160dk_nrf9160.md index ebe8d52a..6c005b7d 100644 --- a/docs/firmware/hardware/6-catalog/continuously-verified/arm_nrf9160dk_nrf9160.md +++ b/docs/firmware/hardware/6-catalog/continuously-verified/arm_nrf9160dk_nrf9160.md @@ -15,7 +15,7 @@ image: /img/boards/arm/nrf9160dk_nrf9160.jpg | ------------- | -------------------- | | Board ID | `nrf9160dk_nrf9160` | | Golioth Level | [Continuously verified](/firmware/hardware#continuously-verified-boards) | -| Golioth Quickstart | [Golioth NCS Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr-ncs) || Architecture | ARM | +| Golioth Quickstart | [Golioth NCS Build Environment](/getting-started/device-examples/compile-example-code/zephyr-ncs) || Architecture | ARM | | RAM* | 88 kB | | Flash* | 1024 kB | @@ -23,7 +23,7 @@ image: /img/boards/arm/nrf9160dk_nrf9160.jpg ## Getting started -See our [Golioth NCS Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr-ncs) guide. +See our [Golioth NCS Build Environment](/getting-started/device-examples/compile-example-code/zephyr-ncs) guide. ## Supported features diff --git a/docs/firmware/hardware/6-catalog/continuously-verified/xtensa_esp32.md b/docs/firmware/hardware/6-catalog/continuously-verified/xtensa_esp32.md index be4c777a..4beaa475 100644 --- a/docs/firmware/hardware/6-catalog/continuously-verified/xtensa_esp32.md +++ b/docs/firmware/hardware/6-catalog/continuously-verified/xtensa_esp32.md @@ -15,7 +15,7 @@ image: /img/boards/xtensa/esp32.jpg | ------------- | -------------------- | | Board ID | `esp32` | | Golioth Level | [Continuously verified](/firmware/hardware#continuously-verified-boards) | -| Golioth Quickstart | [Golioth Zephyr Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr) || Architecture | XTENSA | +| Golioth Quickstart | [Golioth Zephyr Build Environment](/getting-started/device-examples/compile-example-code/zephyr) || Architecture | XTENSA | | RAM* | N/A | | Flash* | N/A | @@ -23,7 +23,7 @@ image: /img/boards/xtensa/esp32.jpg ## Getting started -See our [Golioth Zephyr Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr) guide. +See our [Golioth Zephyr Build Environment](/getting-started/device-examples/compile-example-code/zephyr) guide. ## Supported features diff --git a/docs/firmware/zephyr-device-sdk/firmware-upgrade/2-build-sample-application.md b/docs/firmware/zephyr-device-sdk/firmware-upgrade/2-build-sample-application.md index 5dc9336a..f12cb74f 100644 --- a/docs/firmware/zephyr-device-sdk/firmware-upgrade/2-build-sample-application.md +++ b/docs/firmware/zephyr-device-sdk/firmware-upgrade/2-build-sample-application.md @@ -32,7 +32,8 @@ updated firmware version and report the results to the Golioth Console. ### 1. Initial build and flash Navigate to the Golioth module in your zephyr install. If you followed [Golioth -NCS Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr-ncs) +NCS Build +Environment](/getting-started/device-examples/compile-example-code/zephyr-ncs) this will be in the `golioth-ncs-workspace/module/lib/golioth` directory. Build and flash the sample code. diff --git a/docs/firmware/zephyr-device-sdk/zephyr-app.md b/docs/firmware/zephyr-device-sdk/zephyr-app.md index 73392a11..c67559ca 100644 --- a/docs/firmware/zephyr-device-sdk/zephyr-app.md +++ b/docs/firmware/zephyr-device-sdk/zephyr-app.md @@ -205,7 +205,7 @@ This will set the `$ZEPHYR_BASE` environment variable, as well as make sure :::note The exact paths may not match up with what is shown here. Look at [Set up Zephyr (on -ESP32)](https://docs.golioth.io/hardware/esp32/quickstart/set-up-zephyr) page +ESP32)](/getting-started/device-examples/compile-example-code/zephyr) page for more information about setting up the toolchain. environment variables. ::: diff --git a/docs/firmware/golioth-firmware-sdk/build-environment/esp-idf.md b/docs/getting-started/3-device-examples/2-compile-example-code/esp-idf.md similarity index 100% rename from docs/firmware/golioth-firmware-sdk/build-environment/esp-idf.md rename to docs/getting-started/3-device-examples/2-compile-example-code/esp-idf.md diff --git a/docs/firmware/zephyr-device-sdk/build-environment/zephyr-ncs.md b/docs/getting-started/3-device-examples/2-compile-example-code/zephyr-ncs.md similarity index 100% rename from docs/firmware/zephyr-device-sdk/build-environment/zephyr-ncs.md rename to docs/getting-started/3-device-examples/2-compile-example-code/zephyr-ncs.md diff --git a/docs/firmware/zephyr-device-sdk/build-environment/zephyr.md b/docs/getting-started/3-device-examples/2-compile-example-code/zephyr.md similarity index 100% rename from docs/firmware/zephyr-device-sdk/build-environment/zephyr.md rename to docs/getting-started/3-device-examples/2-compile-example-code/zephyr.md diff --git a/docs/landing_page.md b/docs/landing_page.md index e1b86968..d227688a 100644 --- a/docs/landing_page.md +++ b/docs/landing_page.md @@ -33,14 +33,16 @@ hardware. ### Platform Support -| Vendor | SDK | Quickstart | Note | -| ---------- | -------------------- | ---------- | ---- | -| Espressif | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | [Golioth ESP-IDF Build Environment](/firmware/golioth-firmware-sdk/build-environment/esp-idf) | Use for ESP32 MCUs | -| Espressif | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [Golioth Zephyr Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr) | Use for ESP32 MCUs | -| Infineon | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | ModusToolbox™ [Readme](https://github.com/golioth/golioth-firmware-sdk/tree/main/examples/modus_toolbox) / [Webinar](https://blog.golioth.io/a-recap-of-how-to-collect-data-from-iot-sensors-using-golioth-and-the-infineon-modustoolbox/) | Use for Infineon MCUs like PSoC6 | -| Nordic | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [Golioth NCS Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr-ncs) | Use for Nordic MCUs like nRF9160 and nRF7002 | -| NXP | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [Golioth Zephyr Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr) | Use for NXP MCUs like i.MX RT1062 and i.MX RT1024 | -| Other Vendors | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [Golioth Zephyr Build Environment](/firmware/zephyr-device-sdk/build-environment/zephyr) | Many other MCUs are supported by Zephyr will work with Golioth! Follow this quickstart and substitute your board name in the build examples. | +| Vendor | SDK | Quickstart | Note | +| ---------------- | -------------------- | ---------- | ---- | +| Multiple Vendors | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [Golioth Zephyr Build Environment](/getting-started/device-examples/compile-example-code/zephyr) | Golioth supports a multitude of MCUs thanks to the cross-vendor support of Zephyr! Follow this quickstart and substitute your board name in the build examples. | +| Espressif | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | [Golioth ESP-IDF Build Environment](/getting-started/device-examples/compile-example-code/esp-idf) | Use for ESP32 MCUs | +| Espressif | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [Golioth Zephyr Build Environment](/getting-started/device-examples/compile-example-code/zephyr) | Use for ESP32 MCUs | +| Infineon | [Golioth Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) | ModusToolbox™ [Readme](https://github.com/golioth/golioth-firmware-sdk/tree/main/examples/modus_toolbox) / [Webinar](https://blog.golioth.io/a-recap-of-how-to-collect-data-from-iot-sensors-using-golioth-and-the-infineon-modustoolbox/) | Use for Infineon MCUs like PSoC6 | +| Nordic | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [Golioth NCS Build Environment](/getting-started/device-examples/compile-example-code/zephyr-ncs) | Use for Nordic MCUs like nRF9160 and nRF7002 | +| NXP | [Golioth Zephyr SDK](https://github.com/golioth/golioth-zephyr-sdk) | [Golioth Zephyr Build Environment](/getting-started/device-examples/compile-example-code/zephyr) | Use for NXP MCUs like i.MX RT1062 and i.MX RT1024 | + +:::info Don't see your hardware listed? The Golioth Firmware SDK includes a [porting guide](https://github.com/golioth/golioth-firmware-sdk/blob/main/docs/Porting_Guide.md) diff --git a/docs/partials-common/prerequisites-device.md b/docs/partials-common/prerequisites-device.md index e50e6aa9..49cf9886 100644 --- a/docs/partials-common/prerequisites-device.md +++ b/docs/partials-common/prerequisites-device.md @@ -7,8 +7,7 @@ Project](/reference/command-line-tools/tutorial/create-project) - Have a provisioned device and credential for it - see [Authorizing Devices](/reference/command-line-tools/tutorial/authorize-devices) -- The `golioth/zephyr` codebase set up on your machine. See the [Set up - Zephyr](/firmware/hardware/esp32/zephyr-quickstart/set-up-zephyr) page for the + Zephyr](/getting-started/device-examples/compile-example-code/zephyr) page for the ESP32. - A toolchain installed. In this guide, the toolchain for the ESP32 will be used. From 48470cccdc18870d8993f9e765a18552963d7f27 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Fri, 1 Dec 2023 13:31:30 -0600 Subject: [PATCH 36/88] firmware: remove build-environment sections The guides for setting up platform development have been moved to the Getting Started section. The firmware section will eventually have "How to add Golioth to your existing project" guides. But those will be the result of future improvement efforts. Signed-off-by: Mike Szczys --- .../golioth-firmware-sdk/build-environment/README.md | 9 --------- .../zephyr-device-sdk/build-environment/README.md | 7 ------- 2 files changed, 16 deletions(-) delete mode 100644 docs/firmware/golioth-firmware-sdk/build-environment/README.md delete mode 100644 docs/firmware/zephyr-device-sdk/build-environment/README.md diff --git a/docs/firmware/golioth-firmware-sdk/build-environment/README.md b/docs/firmware/golioth-firmware-sdk/build-environment/README.md deleted file mode 100644 index 95dd632f..00000000 --- a/docs/firmware/golioth-firmware-sdk/build-environment/README.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Set up a Firmware Build Environment -sidebar_position: 0.9 ---- - -* Use Golioth with Zephyr -* Use Golioth with NCS (Nordic Fork of Zephyr) -* Use Golioth with Espressif ESP-IDF -* Use Golioth with Infineon ModusToolbox™ diff --git a/docs/firmware/zephyr-device-sdk/build-environment/README.md b/docs/firmware/zephyr-device-sdk/build-environment/README.md deleted file mode 100644 index e92e5f5e..00000000 --- a/docs/firmware/zephyr-device-sdk/build-environment/README.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Set up a Firmware Build Environment -sidebar_position: 0.9 ---- - -* Use Golioth with Zephyr -* Use Golioth with NCS (Nordic Fork of Zephyr) From c85a09d6d3f95119abbc2792be1f41e8a88b5ac8 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Fri, 1 Dec 2023 14:08:45 -0600 Subject: [PATCH 37/88] getting-started: move ESP-IDF assets here Getting started houses the platform setup and sample compilation guides. This commit move the ESP-IDF guides from the hardware section into getting started. Signed-off-by: Mike Szczys --- .../2-esp32/1-espidf-quickstart/README.md | 17 ----------------- .../2-esp32/1-espidf-quickstart/_category_.yml | 4 ---- docs/firmware/hardware/2-esp32/_category_.yml | 4 ---- .../1-setup-esp-idf.md} | 0 .../3-esp-idf/2-flash-sample.md} | 0 .../2-compile-example-code/3-esp-idf/3-ota.md} | 0 .../3-esp-idf/4-cloud-data.md} | 0 .../3-esp-idf}/README.md | 1 - .../assets/golioth-OTA-create-artifact.png | Bin .../assets/golioth-OTA-create-release.png | Bin .../golioth-OTA-report-firmware-revision.png | Bin .../3-esp-idf}/assets/golioth-OTA-rollout.png | Bin .../3-esp-idf}/assets/golioth-espidf-logs.png | Bin .../3-esp-idf}/assets/golioth-espidf-state.png | Bin .../assets/golioth-espidf-stream.png | Bin 15 files changed, 26 deletions(-) delete mode 100644 docs/firmware/hardware/2-esp32/1-espidf-quickstart/README.md delete mode 100644 docs/firmware/hardware/2-esp32/1-espidf-quickstart/_category_.yml delete mode 100644 docs/firmware/hardware/2-esp32/_category_.yml rename docs/getting-started/3-device-examples/2-compile-example-code/{esp-idf.md => 3-esp-idf/1-setup-esp-idf.md} (100%) rename docs/{firmware/hardware/2-esp32/1-espidf-quickstart/3-flash-sample.md => getting-started/3-device-examples/2-compile-example-code/3-esp-idf/2-flash-sample.md} (100%) rename docs/{firmware/hardware/2-esp32/1-espidf-quickstart/4-ota.md => getting-started/3-device-examples/2-compile-example-code/3-esp-idf/3-ota.md} (100%) rename docs/{firmware/hardware/2-esp32/1-espidf-quickstart/5-cloud-data.md => getting-started/3-device-examples/2-compile-example-code/3-esp-idf/4-cloud-data.md} (100%) rename docs/{firmware/hardware/2-esp32 => getting-started/3-device-examples/2-compile-example-code/3-esp-idf}/README.md (98%) rename docs/{firmware/hardware/2-esp32/1-espidf-quickstart => getting-started/3-device-examples/2-compile-example-code/3-esp-idf}/assets/golioth-OTA-create-artifact.png (100%) rename docs/{firmware/hardware/2-esp32/1-espidf-quickstart => getting-started/3-device-examples/2-compile-example-code/3-esp-idf}/assets/golioth-OTA-create-release.png (100%) rename docs/{firmware/hardware/2-esp32/1-espidf-quickstart => getting-started/3-device-examples/2-compile-example-code/3-esp-idf}/assets/golioth-OTA-report-firmware-revision.png (100%) rename docs/{firmware/hardware/2-esp32/1-espidf-quickstart => getting-started/3-device-examples/2-compile-example-code/3-esp-idf}/assets/golioth-OTA-rollout.png (100%) rename docs/{firmware/hardware/2-esp32/1-espidf-quickstart => getting-started/3-device-examples/2-compile-example-code/3-esp-idf}/assets/golioth-espidf-logs.png (100%) rename docs/{firmware/hardware/2-esp32/1-espidf-quickstart => getting-started/3-device-examples/2-compile-example-code/3-esp-idf}/assets/golioth-espidf-state.png (100%) rename docs/{firmware/hardware/2-esp32/1-espidf-quickstart => getting-started/3-device-examples/2-compile-example-code/3-esp-idf}/assets/golioth-espidf-stream.png (100%) diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/README.md b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/README.md deleted file mode 100644 index c5a33e1f..00000000 --- a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/README.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -id: overview -title: ESP32 ESP-IDF Quickstart -slug: /firmware/hardware/esp32/espidf-quickstart ---- - -:::caution -You must first follow the [Golioth Platform Quickstart](/getting-started/) before attempting this guide. -::: - -This walk-through will demonstrate how to quickly connect an Espressif [ESP32 DevKitC](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html) using [the Espressif IoT Development Framework (ESP-IDF)](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/). - -:::note - -[Golioth's Firmware SDK](https://github.com/golioth/golioth-firmware-sdk) will work with other ESP32 devkits. We're using the DevKitC as a reference board to provide a consistent getting started experience. - -::: diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/_category_.yml b/docs/firmware/hardware/2-esp32/1-espidf-quickstart/_category_.yml deleted file mode 100644 index 9c501236..00000000 --- a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/_category_.yml +++ /dev/null @@ -1,4 +0,0 @@ -label: 'ESP-IDF Quickstart' -position: 1.5 # float position is supported -collapsible: true # make the category collapsible -collapsed: false # keep the category open by default \ No newline at end of file diff --git a/docs/firmware/hardware/2-esp32/_category_.yml b/docs/firmware/hardware/2-esp32/_category_.yml deleted file mode 100644 index 83adab35..00000000 --- a/docs/firmware/hardware/2-esp32/_category_.yml +++ /dev/null @@ -1,4 +0,0 @@ -label: 'ESP32' -position: 2 # float position is supported -collapsible: true # make the category collapsible -collapsed: true # keep the category open by default diff --git a/docs/getting-started/3-device-examples/2-compile-example-code/esp-idf.md b/docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/1-setup-esp-idf.md similarity index 100% rename from docs/getting-started/3-device-examples/2-compile-example-code/esp-idf.md rename to docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/1-setup-esp-idf.md diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/3-flash-sample.md b/docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/2-flash-sample.md similarity index 100% rename from docs/firmware/hardware/2-esp32/1-espidf-quickstart/3-flash-sample.md rename to docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/2-flash-sample.md diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/4-ota.md b/docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/3-ota.md similarity index 100% rename from docs/firmware/hardware/2-esp32/1-espidf-quickstart/4-ota.md rename to docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/3-ota.md diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/5-cloud-data.md b/docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/4-cloud-data.md similarity index 100% rename from docs/firmware/hardware/2-esp32/1-espidf-quickstart/5-cloud-data.md rename to docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/4-cloud-data.md diff --git a/docs/firmware/hardware/2-esp32/README.md b/docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/README.md similarity index 98% rename from docs/firmware/hardware/2-esp32/README.md rename to docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/README.md index e581cdab..cc2a00ff 100644 --- a/docs/firmware/hardware/2-esp32/README.md +++ b/docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/README.md @@ -1,7 +1,6 @@ --- id: overview title: ESP32 Overview -slug: /firmware/hardware/esp32 --- ## What is the ESP32? diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-create-artifact.png b/docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/assets/golioth-OTA-create-artifact.png similarity index 100% rename from docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-create-artifact.png rename to docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/assets/golioth-OTA-create-artifact.png diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-create-release.png b/docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/assets/golioth-OTA-create-release.png similarity index 100% rename from docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-create-release.png rename to docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/assets/golioth-OTA-create-release.png diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-report-firmware-revision.png b/docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/assets/golioth-OTA-report-firmware-revision.png similarity index 100% rename from docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-report-firmware-revision.png rename to docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/assets/golioth-OTA-report-firmware-revision.png diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-rollout.png b/docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/assets/golioth-OTA-rollout.png similarity index 100% rename from docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-OTA-rollout.png rename to docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/assets/golioth-OTA-rollout.png diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-logs.png b/docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/assets/golioth-espidf-logs.png similarity index 100% rename from docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-logs.png rename to docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/assets/golioth-espidf-logs.png diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-state.png b/docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/assets/golioth-espidf-state.png similarity index 100% rename from docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-state.png rename to docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/assets/golioth-espidf-state.png diff --git a/docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-stream.png b/docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/assets/golioth-espidf-stream.png similarity index 100% rename from docs/firmware/hardware/2-esp32/1-espidf-quickstart/assets/golioth-espidf-stream.png rename to docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/assets/golioth-espidf-stream.png From 757fb7858900415f4a4fbfe37d15644f0a65a7fe Mon Sep 17 00:00:00 2001 From: Chris Gammell Date: Mon, 4 Dec 2023 09:41:52 -0500 Subject: [PATCH 38/88] Update zephyr.md small fix to grammar --- .../3-device-examples/2-compile-example-code/zephyr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started/3-device-examples/2-compile-example-code/zephyr.md b/docs/getting-started/3-device-examples/2-compile-example-code/zephyr.md index 5a78a9dd..d8bf3b1b 100644 --- a/docs/getting-started/3-device-examples/2-compile-example-code/zephyr.md +++ b/docs/getting-started/3-device-examples/2-compile-example-code/zephyr.md @@ -9,7 +9,7 @@ import TabItem from '@theme/TabItem'; ## Zephyr Setup Overview [Zephyr RTOS](https://docs.zephyrproject.org/) supports a vast number of -microcontrollers from a many different vendors. There's a very good chance your +microcontrollers from many different vendors. There's a very good chance your preferred chip will work with Zephyr using Golioth as a module. We will install the Zephyr tree in a directory in your home location From 292f726c6a270ce28d7274b6cbb2a42e20071ee5 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Mon, 4 Dec 2023 14:39:16 -0600 Subject: [PATCH 39/88] disable blog: Docusaurus includes a blog by default. We have been hosting a "Hello World" at /blog and this commit removes that page and all /tags pages. Signed-off-by: Mike Szczys --- docusaurus.config.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index 9c15f900..bb94959b 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -172,10 +172,8 @@ module.exports = { trackingID: "G-C2MSLQD9D7", anonymizeIP: true, }, - // blog: { - // showReadingTime: true, - // //editUrl: 'https://github.com/golioth/golioth/edit/master/docs/blog/', - // }, + blog: false, + pages: false, theme: { customCss: [ require.resolve("swagger-ui-react/swagger-ui.css"), From b63d2d7a970e5a53a81944459b665c378163c9b7 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Tue, 5 Dec 2023 16:04:10 -0600 Subject: [PATCH 40/88] firebase: redirect hardware catalog pages Redirect hardware catalog to new location for that section Signed-off-by: Mike Szczys --- firebase.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/firebase.json b/firebase.json index d88871b2..6e4d49f4 100644 --- a/firebase.json +++ b/firebase.json @@ -19,6 +19,16 @@ "source": "/cloud/tiers{,/**}", "destination": "https://golioth.io/pricing", "type": 301 + }, + { + "source": "/hardware/catalog/search{,/**}", + "destination": "/firmware/hardware/catalog/search", + "type": 301 + }, + { + "source": "/hardware/catalog/:board*", + "destination": "/firmware/hardware/catalog/:board", + "type": 301 } ], "rewrites": [ From ce8ca944a9cdb49d9bfe9601462c751d394ec7fc Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Tue, 5 Dec 2023 13:13:26 -0600 Subject: [PATCH 41/88] scripts: add test for redirects No 301 redirects in the firebase.json file can now be automatically test by placing the sitemap.xml file from the live site in the same directory as the redirect_test.py file. This will be tested against the build/sitemap.xml file, using firebase.json for the redirect rules. Signed-off-by: Mike Szczys --- scripts/redirect_test/.gitignore | 1 + scripts/redirect_test/redirect_test.py | 138 +++++++++++++++++++++++++ 2 files changed, 139 insertions(+) create mode 100644 scripts/redirect_test/.gitignore create mode 100644 scripts/redirect_test/redirect_test.py diff --git a/scripts/redirect_test/.gitignore b/scripts/redirect_test/.gitignore new file mode 100644 index 00000000..1d3de1ab --- /dev/null +++ b/scripts/redirect_test/.gitignore @@ -0,0 +1 @@ +sitemap.xml diff --git a/scripts/redirect_test/redirect_test.py b/scripts/redirect_test/redirect_test.py new file mode 100644 index 00000000..3b528408 --- /dev/null +++ b/scripts/redirect_test/redirect_test.py @@ -0,0 +1,138 @@ +import xml.etree.ElementTree as ET +import json +from urllib.parse import urlparse +tree_main = ET.parse('./sitemap.xml') +tree_testing = ET.parse('../../build/sitemap.xml') + +# Print out some debugging info +print_existing = False +print_missing = False +print_redirects = True + +main_urls = list() +testing_urls = list() + +main_root = tree_main.getroot() +testing_root = tree_testing.getroot() + +for r in main_root: + parsed = urlparse(r[0].text) + main_urls.append(parsed.path) + +for t in testing_root: + parsed = urlparse(t[0].text) + testing_urls.append(parsed.path) + +def get_redirect_rules(infile="../../firebase.json"): + try: + with open(infile, 'r') as f: + rules = json.load(f) + + ruleset = rules['hosting'][0]['redirects'] + print("Using redirect rules for target:", rules['hosting'][0]['target']) + return ruleset + + except Exception as e: + print("Error accessing redirect rules file:", infile, e) + +def check_missing(): + total = 0 + for t in main_urls: + if t in testing_urls: + if (print_existing): + print("Link Exists: ", t) + else: + if (print_missing): + print("Link Broken: ", t) + total += 1 + print("Total missing:", total) + +def match_url(in_url, source_url): + in_t = in_url.split('/') + source_t = source_url.split('/') + + if len(source_t) > len(in_t) + 1 and source_t[-1].endswith != '*': + return None + + wildcards = dict() + + for i, t in enumerate(in_t): + if source_t[i].startswith(":"): + if source_t[i].endswith("*"): + wildcards[source_t[i][:-1]] = '/'.join(in_t[i:]) + return wildcards + else: + wildcards[source_t[i]] = t + elif source_t[i] == "{,/**}": + if t == '': + wildcards["closehash"] = True + return wildcards + else: + return None + elif source_t[i] != t: + return None + + return wildcards + +def process_redirect(wildcards, dest_url): + dest_t = dest_url.split('/') + + out_url = "" + for i, t in enumerate(dest_t): + if t.startswith(":"): + if t not in wildcards: + return None + else: + out_url = '/'.join([out_url, wildcards[t]]) + elif t == "": + if i == 0: + #Empty member for leading slash + continue + elif i == len(dest_t) - 1 and "closehash" in wildcards: + return out_url + else: + return None + else: + out_url = '/'.join([out_url, t]) + return out_url + +def test_redirect_rules(redirect='../../firebase.json', orig_sitemap=main_urls, + dev_sitemap=testing_urls): + ruleset = get_redirect_rules(redirect) + if ruleset == None: + raise Exception(ValueError, f"Unable to get redirect rules: {redirect}") + + total = 0 + + for t in orig_sitemap: + newlink = None + if t in dev_sitemap: + if (print_existing): + print("Link Exists: ", t) + else: + for r in ruleset: + wild = match_url(t, r['source']) + if wild == None: + continue + + newlink = process_redirect(wild, r['destination']) + if newlink == None: + continue + + if newlink in dev_sitemap: + if print_redirects == True: + print("Redirect:", t, "->", newlink) + break + else: + newlink = None + + if newlink == None: + if (print_missing): + print("Link Broken: ", t) + total += 1 + + + print("Total missing:", total) + +check_missing() +test_redirect_rules() From 547c25b70abc4a0e42ff96bcf8596a8756a904e5 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Thu, 7 Dec 2023 14:52:02 -0600 Subject: [PATCH 42/88] scripts: fix closing slash detection When using the redirect check, some sitemap links will have trailing slashes while others will not. This happens when a directory URL loads an overview page. This commit changes the detection method for the `{,/**}` filter. This is not the most optimize approach; regex could have been used by we are splitting on forward slashes so the pattern disrupted that split in previous versios. Signed-off-by: Mike Szczys --- scripts/redirect_test/redirect_test.py | 46 ++++++++++++++++++-------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/scripts/redirect_test/redirect_test.py b/scripts/redirect_test/redirect_test.py index 3b528408..8c0ff4ba 100644 --- a/scripts/redirect_test/redirect_test.py +++ b/scripts/redirect_test/redirect_test.py @@ -48,31 +48,48 @@ def check_missing(): print("Total missing:", total) def match_url(in_url, source_url): + wildcards = dict() + in_t = in_url.split('/') - source_t = source_url.split('/') - if len(source_t) > len(in_t) + 1 and source_t[-1].endswith != '*': - return None + if source_url.endswith("{,/**}"): + wildcards["closehash"] = True + source_url = source_url.rstrip("{,/**}") + if in_t[-1] == "": + # Remove the trailing empty string which indicates a slash + # This makes it easier to match since we know we have the wildcard + in_t.pop() - wildcards = dict() + source_t = source_url.split('/') for i, t in enumerate(in_t): - if source_t[i].startswith(":"): + if i >= len(source_t): + return None + + elif source_t[i].startswith(":"): if source_t[i].endswith("*"): wildcards[source_t[i][:-1]] = '/'.join(in_t[i:]) return wildcards else: wildcards[source_t[i]] = t - elif source_t[i] == "{,/**}": - if t == '': - wildcards["closehash"] = True - return wildcards - else: - return None elif source_t[i] != t: return None - return wildcards + if len(source_t) == len(in_t): + return wildcards + else: + return None + +def check_link_trailing_slash(link, url_list): + """ + Check link with and without a trailing slash, returning true if it is found + in the url_list + """ + if link in url_list: + return True + + link += "/" + return link in url_list def process_redirect(wildcards, dest_url): dest_t = dest_url.split('/') @@ -87,9 +104,10 @@ def process_redirect(wildcards, dest_url): elif t == "": if i == 0: #Empty member for leading slash + #This is expected; the first join op will generate leading slash continue elif i == len(dest_t) - 1 and "closehash" in wildcards: - return out_url + return out_url + "/" else: return None else: @@ -119,7 +137,7 @@ def test_redirect_rules(redirect='../../firebase.json', orig_sitemap=main_urls, if newlink == None: continue - if newlink in dev_sitemap: + if check_link_trailing_slash(newlink, dev_sitemap): if print_redirects == True: print("Redirect:", t, "->", newlink) break From 22e05c3c4e209b957418432c4be75e01254ee435 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Thu, 7 Dec 2023 19:47:43 -0600 Subject: [PATCH 43/88] redirect: hardware landing page Signed-off-by: Mike Szczys --- firebase.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/firebase.json b/firebase.json index 6e4d49f4..b5d910db 100644 --- a/firebase.json +++ b/firebase.json @@ -29,6 +29,11 @@ "source": "/hardware/catalog/:board*", "destination": "/firmware/hardware/catalog/:board", "type": 301 + }, + { + "source": "/hardware{,/**}", + "destination": "/firmware/hardware", + "type": 301 } ], "rewrites": [ From 7f2fe0d923057db646ea288a5484ab47f4ce9c62 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Thu, 7 Dec 2023 19:55:08 -0600 Subject: [PATCH 44/88] redirect: output streams Signed-off-by: Mike Szczys --- firebase.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/firebase.json b/firebase.json index b5d910db..1aa59a04 100644 --- a/firebase.json +++ b/firebase.json @@ -34,6 +34,16 @@ "source": "/hardware{,/**}", "destination": "/firmware/hardware", "type": 301 + }, + { + "source": "/cloud/output-streams/:streams*", + "destination": "/data-routing/output-streams/:streams", + "type": 301 + }, + { + "source": "/cloud/output-streams{,/**}", + "destination": "/data-routing/output-streams/", + "type": 301 } ], "rewrites": [ From 08d4b1e4904aeca5cd90bff6819e293365e3f555 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Thu, 7 Dec 2023 20:02:46 -0600 Subject: [PATCH 45/88] redirect: Cloud Services; LightDB State/Stream Signed-off-by: Mike Szczys --- firebase.json | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/firebase.json b/firebase.json index 1aa59a04..b4e6fc1e 100644 --- a/firebase.json +++ b/firebase.json @@ -44,6 +44,31 @@ "source": "/cloud/output-streams{,/**}", "destination": "/data-routing/output-streams/", "type": 301 + }, + { + "source": "/cloud/services{,/**}", + "destination": "/data-routing/application-services/", + "type": 301 + }, + { + "source": "/cloud/services/lightdb/:state*", + "destination": "/data-routing/application-services/lightdb-state/:state", + "type": 301 + }, + { + "source": "/services/lightdb{,/**}", + "destination": "/data-routing/application-services/lightdb-state/", + "type": 301 + }, + { + "source": "/cloud/services/lightdb-stream/:stream*", + "destination": "/data-routing/application-services/lightdb-stream/:stream", + "type": 301 + }, + { + "source": "/cloud/services/lightdb-stream{,/**}", + "destination": "/data-routing/application-services/lightdb-stream/", + "type": 301 } ], "rewrites": [ From c530f5c428c1cd6370885619756b147bfeb00a54 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Thu, 7 Dec 2023 20:12:23 -0600 Subject: [PATCH 46/88] redirect: remaining cloud pages * Redirect /cloud to /data-routing because it's the most direct correlation * Redirect logging, ota, and settings to Device Management Signed-off-by: Mike Szczys --- firebase.json | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/firebase.json b/firebase.json index b4e6fc1e..6c5a7b00 100644 --- a/firebase.json +++ b/firebase.json @@ -69,6 +69,41 @@ "source": "/cloud/services/lightdb-stream{,/**}", "destination": "/data-routing/application-services/lightdb-stream/", "type": 301 + }, + { + "source": "/cloud/services/logging/:logs*", + "destination": "/device-management/logging/:logs", + "type": 301 + }, + { + "source": "/cloud/services/logging{,/**}", + "destination": "/device-management/logging", + "type": 301 + }, + { + "source": "/cloud/services/ota/:ota*", + "destination": "/device-management/ota/:ota", + "type": 301 + }, + { + "source": "/cloud/services/ota{,/**}", + "destination": "/device-management/ota", + "type": 301 + }, + { + "source": "/cloud/services/settings/:sets*", + "destination": "/device-management/settings/:sets", + "type": 301 + }, + { + "source": "/cloud/services/settings{,/**}", + "destination": "/device-management/settings", + "type": 301 + }, + { + "source": "/cloud{,/**}", + "destination": "/data-routing", + "type": 301 } ], "rewrites": [ From 5e03e76e56b4ac4ad327ae55616173c6ac631dc1 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Fri, 8 Dec 2023 17:07:12 -0600 Subject: [PATCH 47/88] scripts: document the redirect script Signed-off-by: Mike Szczys --- scripts/redirect_test/README.md | 52 +++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 scripts/redirect_test/README.md diff --git a/scripts/redirect_test/README.md b/scripts/redirect_test/README.md new file mode 100644 index 00000000..d0c33eba --- /dev/null +++ b/scripts/redirect_test/README.md @@ -0,0 +1,52 @@ +# Testing Firebase Redirects + +Moving pages or sections of our docs around will break links that have been +indexed by search engines (as well as user bookmarks, blog and social posts, +etc.). + +The redirect_test.py script is used to test redirects in the firebase.json file +using a source sitemap.xml file you supply and a destination sitemap.xml file +located in the build directory. + +## Partial redirect support + +This script does not fully support the redirect syntax used by Firebase. Here is +what is supported, and how fully it is supported: + +* Parameter syntax + * `/mypath/:myparam/morepath`: The literals before and after `:myparam` will + be fully matched. The area represented by `:myparam` may not contain + forward slashes (I don't know if this adheres to firebase's parsing or + not) and will be saved for use when formulating the destination path + * `/my/path/:myparam*`: The literals before `:myparam*` will be fully + matched. Everything from where `:myparam*` begins to the end of the source + path will be saved (including forward slashes) for use when formulating + the destination path. This is what should be used when moving sections of + documentation. + * Using params in destination URLs: + * `/new/path/:myparam/more/path` + * `/new/path/:subdirparam/more/path/:wildcardparam` + * Examples show multiple ways to use parameters. Direct substitutions are made. + * Choose your own param names + +* Slash wildcard: `{,/**}` + * Firebase will match with or without a closing slash **and everything in + the path afterwards** + * **This script does not copy the full path.** It behaves differently + because we generally don't want to redirect all pages in all + subdirectories to a single destination. Instead, the script will match + with or without a trailing slash, leaving the subpages as unmatched so we + realize we need more redirects to catch those page moves. + +## Usage + +1. Copy the sitemap.xml from the live site (before moving things around) into + the `scripts/redirect_test/` folder. +2. Make the docs changes your needs. +3. Build the site locally with `npm run buid:dev` +4. Add redirects as needed to the `docs-dev` section of firebase.json +5. Run the script + ``` + cd script/redirect_test + python3 redirect_test.py + ``` From 9669fe996992f938c06cafdfb077387cfeca143d Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Fri, 8 Dec 2023 17:23:27 -0600 Subject: [PATCH 48/88] redirect: esp32 quickstart pages Signed-off-by: Mike Szczys --- firebase.json | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/firebase.json b/firebase.json index 6c5a7b00..387d284a 100644 --- a/firebase.json +++ b/firebase.json @@ -30,6 +30,26 @@ "destination": "/firmware/hardware/catalog/:board", "type": 301 }, + { + "source": "/hardware/esp32/espidf-quickstart/:espidf*", + "destination": "/getting-started/device-examples/compile-example-code/esp-idf/:espidf", + "type": 301 + }, + { + "source": "/hardware/esp32/espidf-quickstart{,/**}", + "destination": "/getting-started/device-examples/compile-example-code/esp-idf/", + "type": 301 + }, + { + "source": "/hardware/esp32/zephyr-quickstart{,/**}", + "destination": "/getting-started/device-examples/compile-example-code/zephyr", + "type": 301 + }, + { + "source": "/hardware/esp32{,/**}", + "destination": "/getting-started/device-examples/compile-example-code/", + "type": 301 + }, { "source": "/hardware{,/**}", "destination": "/firmware/hardware", From bf9523d4269d3d5b88d590196ef462685c8f72b9 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Fri, 8 Dec 2023 20:22:28 -0600 Subject: [PATCH 49/88] quickstart: correct set-up-espidf filename The filename changed slightly from what was used before reorganizing the docs, breaking the 301 redirect patterns. This commit restores the correct filename, fixing the link so that redirects will work correctly. Signed-off-by: Mike Szczys --- .../3-esp-idf/{1-setup-esp-idf.md => 1-set-up-espidf.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/{1-setup-esp-idf.md => 1-set-up-espidf.md} (100%) diff --git a/docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/1-setup-esp-idf.md b/docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/1-set-up-espidf.md similarity index 100% rename from docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/1-setup-esp-idf.md rename to docs/getting-started/3-device-examples/2-compile-example-code/3-esp-idf/1-set-up-espidf.md From b78f26dffd691c48ee05631463547df22a483e81 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Fri, 8 Dec 2023 20:29:27 -0600 Subject: [PATCH 50/88] scripts: correctly implement glob for redirects Previously the `{,/**}` wildcard was not implementing the `**` part of the glob in matching all folowing directories. This commit corrects that behavior. The previous behavior broke the cascading nature of redirect parsing (redirects not being applied to all child directories). This change fixes the issue, at the expense of making accident sweeping redirects a bit harder to notice. Printing of redirected links is on by default; scan carefully to ensure the behavior you expect. Signed-off-by: Mike Szczys --- scripts/redirect_test/README.md | 5 ---- scripts/redirect_test/redirect_test.py | 32 ++++++++++++++++++++------ 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/scripts/redirect_test/README.md b/scripts/redirect_test/README.md index d0c33eba..7b748eee 100644 --- a/scripts/redirect_test/README.md +++ b/scripts/redirect_test/README.md @@ -32,11 +32,6 @@ what is supported, and how fully it is supported: * Slash wildcard: `{,/**}` * Firebase will match with or without a closing slash **and everything in the path afterwards** - * **This script does not copy the full path.** It behaves differently - because we generally don't want to redirect all pages in all - subdirectories to a single destination. Instead, the script will match - with or without a trailing slash, leaving the subpages as unmatched so we - realize we need more redirects to catch those page moves. ## Usage diff --git a/scripts/redirect_test/redirect_test.py b/scripts/redirect_test/redirect_test.py index 8c0ff4ba..f5fb2876 100644 --- a/scripts/redirect_test/redirect_test.py +++ b/scripts/redirect_test/redirect_test.py @@ -54,24 +54,35 @@ def match_url(in_url, source_url): if source_url.endswith("{,/**}"): wildcards["closehash"] = True - source_url = source_url.rstrip("{,/**}") - if in_t[-1] == "": - # Remove the trailing empty string which indicates a slash - # This makes it easier to match since we know we have the wildcard - in_t.pop() - source_t = source_url.split('/') + # Workaround for splitting by forward slash + temp_url = source_url.replace("{,/**}", "{****}") + source_t = temp_url.split('/') + source_t[-1] = source_t[-1].replace("{****}", "{,/**}") + + else: + source_t = source_url.split('/') for i, t in enumerate(in_t): if i >= len(source_t): return None + elif source_t[i].endswith("{,/**}"): + leading_t = source_t[i].split("{,/**}")[0] + + if t.startswith(leading_t): + wildcards["closehash"] = t.lstrip(leading_t) + return wildcards + else: + return None + elif source_t[i].startswith(":"): if source_t[i].endswith("*"): wildcards[source_t[i][:-1]] = '/'.join(in_t[i:]) return wildcards else: wildcards[source_t[i]] = t + elif source_t[i] != t: return None @@ -107,7 +118,7 @@ def process_redirect(wildcards, dest_url): #This is expected; the first join op will generate leading slash continue elif i == len(dest_t) - 1 and "closehash" in wildcards: - return out_url + "/" + return '/'.join([out_url.rstrip('/'), wildcards["closehash"]]) else: return None else: @@ -123,6 +134,9 @@ def test_redirect_rules(redirect='../../firebase.json', orig_sitemap=main_urls, total = 0 for t in orig_sitemap: + debug = False + if t.endswith("set-up-espidf"): + debug = False newlink = None if t in dev_sitemap: if (print_existing): @@ -130,10 +144,14 @@ def test_redirect_rules(redirect='../../firebase.json', orig_sitemap=main_urls, else: for r in ruleset: wild = match_url(t, r['source']) + if debug == True: + print(wild) if wild == None: continue newlink = process_redirect(wild, r['destination']) + if debug == True: + print(newlink) if newlink == None: continue From 5a14cfbc231a4bcea9c7688681733505568a4ee6 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Fri, 8 Dec 2023 20:49:43 -0600 Subject: [PATCH 51/88] redirect: blog to blog site We never used the blog feature of Docusaurus, but /blog pages were indexed by search engines. This commit redirects those to the actual blog site. Signed-off-by: Mike Szczys --- firebase.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/firebase.json b/firebase.json index 387d284a..7e511b6a 100644 --- a/firebase.json +++ b/firebase.json @@ -124,6 +124,11 @@ "source": "/cloud{,/**}", "destination": "/data-routing", "type": 301 + }, + { + "source": "/blog{,/**}", + "destination": "https://blog.golioth.io/", + "type": 301 } ], "rewrites": [ From 6231f9fc691e25105e764bd4e9e936a5a9fd7423 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Fri, 8 Dec 2023 21:16:16 -0600 Subject: [PATCH 52/88] redirect: commandline tools section Signed-off-by: Mike Szczys --- firebase.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/firebase.json b/firebase.json index 7e511b6a..db241931 100644 --- a/firebase.json +++ b/firebase.json @@ -125,6 +125,16 @@ "destination": "/data-routing", "type": 301 }, + { + "source": "/getting-started/commandline/:cli*", + "destination": "/reference/command-line-tools/tutorial/:cli", + "type": 301 + }, + { + "source": "/commandline{,/**}", + "destination": "/reference/command-line-tools/tutorial/", + "type": 301 + }, { "source": "/blog{,/**}", "destination": "https://blog.golioth.io/", From d69b151a105a90cb7d071055553b80d4f1d19cda Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Mon, 11 Dec 2023 09:28:13 -0600 Subject: [PATCH 53/88] redirect: getting started console section Signed-off-by: Mike Szczys --- firebase.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/firebase.json b/firebase.json index db241931..f771d929 100644 --- a/firebase.json +++ b/firebase.json @@ -135,6 +135,21 @@ "destination": "/reference/command-line-tools/tutorial/", "type": 301 }, + { + "source": "/golioth-console{,/**}", + "destination": "/getting-started/golioth-console", + "type": 301 + }, + { + "source": "/getting-started/console/authorize-devices{,/**}", + "destination": "/getting-started/console/manage-devices", + "type": 301 + }, + { + "source": "https://docs.golioth.io/getting-started/console/choose-device{,/**}", + "destination": "/#using-golioth-with-your-iot-hardware", + "type": 301 + }, { "source": "/blog{,/**}", "destination": "https://blog.golioth.io/", From cdb5270745aa3d245d8667eaa8c22927a615336e Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Mon, 11 Dec 2023 09:28:49 -0600 Subject: [PATCH 54/88] remove unused partials Signed-off-by: Mike Szczys --- .../unused/nrf9160-bootloader-flashing.md | 146 ------------------ docs/partials-common/unused/setup-nrf91.md | 55 ------- 2 files changed, 201 deletions(-) delete mode 100644 docs/partials-common/unused/nrf9160-bootloader-flashing.md delete mode 100644 docs/partials-common/unused/setup-nrf91.md diff --git a/docs/partials-common/unused/nrf9160-bootloader-flashing.md b/docs/partials-common/unused/nrf9160-bootloader-flashing.md deleted file mode 100644 index 8fb80c6f..00000000 --- a/docs/partials-common/unused/nrf9160-bootloader-flashing.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -id: bootloader -title: Flash via USB Bootloader ---- - -## Installing Tools - -Flashing via USB bootloader requires the `newtmgr` tool. - -### Prerequisite: add yourself to the `dialout` user group - -Linux users need to be part of the `dialout` user group for permission to work -with the USB ports. For this to take effect you need to log out and log back in, -so do this first! - -```bash -# Check to see if your user is in the dialout user group -$ groups -mike adm tty uucp cdrom sudo dip plugdev lpadmin sambashare -# If groups list didn't include dialout, add yourself now -$ sudo adduser $USER dialout -# IMPORTANT: log out and back into Linux for this change to take effect. -# (restarting the terminal is not enough) -``` - -### Installing Newt Manager (for bootloading) - -We recommend you use [Jared Wolff's fork of newtmgr](https://github.com/circuitdojo/mynewt-newtmgr) which includes customization for higher-speed transfers on MCUboot implementations that support it. This tool depends on the Go language so we will also install that. - -1. Install the Go Language - - :::note - We recommend you do not use a package manager (like `apt`) to install the Go language. They often have older versions and can present some permission problems as well. - ::: - - Visit [the Go language download page](https://go.dev/dl/) and download the latest version. Install the package: - - ```bash - cd ~ - tar -xvf go1.17.6.linux-amd64.tar.gz --directory ~/. - nano ~/.profile - ``` - - Add the following lines to the end of this file: - - ```bash - export GOPATH=$HOME/go - export PATH=$PATH:$GOPATH/bin - ``` - - Save the file and load the changes: - - ```bash - source ~/.profile - ``` - -2. Install Newt Manager (newtmgr) - - ```bash - mkdir -p $GOPATH/src/mynewt.apache.org/newtmgr - git clone https://github.com/circuitdojo/mynewt-newtmgr.git $GOPATH/src/mynewt.apache.org/newtmgr - cd $GOPATH/src/mynewt.apache.org/newtmgr/newtmgr - GO111MODULE=on go build - go install - ``` - -## Flashing Firmware - -The nRF9160 can be programmed via USB using the MCUboot bootloader. The process depends on three steps: compiling your application for MCUboot, placing the target board in Device Firmware Upgrade (DFU) mode, and using a device management tool to write the firmware binary to the target. - -### Compile your code with MCUboot in mind - -We'll use Zephyr's default blinky project as an example: - -1. Change to the Zephyr directory: - - ```bash - cd ~/golioth-ncs-workspace/zephyr - ``` - -2. Add the `CONFIG_BOOTLOADER_MCUBOOT` flag to the project's `prj.conf` file. - - ```bash - echo 'CONFIG_BOOTLOADER_MCUBOOT=y' >> samples/basic/blinky/prj.conf - ``` - -3. Build the project: - - ```bash - #Flashing example for Circuit Dojo nRF9160 Feather - west build -b circuitdojo_feather_nrf9160_ns samples/basic/blinky -p - #Flashing example for Thingy:91 - west build -b thingy91_nrf9160_ns samples/basic/blinky -p - ``` - -4. When configured for MCUboot, the build process will compile an additional file for use with DFU. This file is located at: - - ```bash - {project_dir}/build/zephyr/app-update.bin - ``` - -### Flash with MCUboot - -1. Put the board into DFU mode by holding the bootloader button and power cycling the device. - - * **Circuit Dojo nRF9160 Feather:** Hold down the user button and click the RST button. Keep holding the user button until the blue light comes on - * **Thingy:91:** Remove the orange case. Hold down the button in the middle of the device and cycle the on/off switch located next to the USB (this hardware lacks a reset button and there is an onboard battery) - -2. Use `newtmgr` to flash the firmware. - - ```bash - #Flashing example for Circuit Dojo nRF9160 Feather - newtmgr --conntype=serial --connstring='dev=/dev/ttyUSB0,baud=1000000' image upload build/zephyr/app_update.bin - #Flashing example for Thingy:91 - newtmgr --conntype=serial --connstring='dev=/dev/ttyACM0,baud=115200' image upload build/zephyr/app_update.bin - ``` - -3. Reset the device to run the newly flashed binary - - If the device has a reset button it can be used to exit DFU mode and run the new binary. You may also use the flashing tool to reset the device: - - ```bash - newtmgr --conntype=serial --connstring='dev=/dev/ttyACM0,baud=115200' reset - ``` - -### Easier MCUboot flashing - -Complexity can be reduced when using `newtmgr` by adding profiles that store the connection settings. - -1. Add a `newtmgr` profile for your target - - ```bash - #Profile for the Circuit Dojo nrF9160 Feather - newtmgr conn add feather type=serial connstring='dev=/dev/ttyUSB0,baud=1000000' - #Profile for the Thingy:91 - newtmgr conn add thingy91 type=serial connstring='dev=/dev/ttyACM0,baud=115200' - ``` - -2. In the future, just use the profile name when flashing: - - ```bash - #Profile for the Circuit Dojo nrF9160 Feather - newtmgr -c feather image upload build/zephyr/app_update.bin - #Profile for the Thingy:91 - newtmgr -c thingy91 image upload build/zephyr/app_update.bin - ``` diff --git a/docs/partials-common/unused/setup-nrf91.md b/docs/partials-common/unused/setup-nrf91.md deleted file mode 100644 index 742f93a1..00000000 --- a/docs/partials-common/unused/setup-nrf91.md +++ /dev/null @@ -1,55 +0,0 @@ -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -`west` is the Zephyr "meta tool" that will allow you to build firmware, install packages, and flash firmware. There are various dependencies required, depending upon your operating system (OS), because `west` is Python based. - -*Choose your OS from the tabs below* - - - -import SetupZephyrUnix from '/docs/partials-common/setup-zephyr-unix.md' - - - -Install dependencies with `apt`: - -``` -sudo apt update -sudo apt install --no-install-recommends git cmake ninja-build gperf \ - ccache dfu-util device-tree-compiler wget \ - python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \ - make gcc gcc-multilib g++-multilib libsdl2-dev -``` - - - - - - -Start by installing dependencies with `brew`: - -``` -brew install cmake ninja gperf python3 ccache qemu dtc -``` - - - - - - -:::caution -While Windows is supported by Zephyr, Golioth does not yet have instructions for -Windows. -::: - - - - ---- From 3f53aaad92ec3647d2413e1c8988232c6942679c Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Mon, 11 Dec 2023 09:35:28 -0600 Subject: [PATCH 55/88] redirect old_index to landing page Signed-off-by: Mike Szczys --- firebase.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/firebase.json b/firebase.json index f771d929..086b0bd5 100644 --- a/firebase.json +++ b/firebase.json @@ -154,6 +154,11 @@ "source": "/blog{,/**}", "destination": "https://blog.golioth.io/", "type": 301 + }, + { + "source": "/old_index{,/**}", + "destination": "/", + "type": 301 } ], "rewrites": [ From 6db85f8ee48c7b1031491718b2e70b4bd0a4b26d Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Mon, 11 Dec 2023 09:40:43 -0600 Subject: [PATCH 56/88] redirect fundamentals section Signed-off-by: Mike Szczys --- firebase.json | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/firebase.json b/firebase.json index 086b0bd5..45b25c03 100644 --- a/firebase.json +++ b/firebase.json @@ -150,6 +150,36 @@ "destination": "/#using-golioth-with-your-iot-hardware", "type": 301 }, + { + "source": "/concepts/device-sdks{,/**}", + "destination": "/firmware", + "type": 301 + }, + { + "source": "/concepts/cli{,/**}", + "destination": "/reference/command-line-tools/tutorial/", + "type": 301 + }, + { + "source": "/concepts/lightdb{,/**}", + "destination": "/data-routing/application-services/", + "type": 301 + }, + { + "source": "/concepts{,/**}", + "destination": "/", + "type": 301 + }, + { + "source": "/partials-common/unused/install-device-toolchain{,/**}", + "destination": "/", + "type": 301 + }, + { + "source": "/concepts/console{,/**}", + "destination": "/getting-started/device-examples/compile-example-code/", + "type": 301 + }, { "source": "/blog{,/**}", "destination": "https://blog.golioth.io/", From a2fb5b8d261b28d1e2f96ed35c7265c56e48162a Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Mon, 11 Dec 2023 11:03:04 -0600 Subject: [PATCH 57/88] css: fix lightmode navigation chevrons Chevrons for the navigation sidebar were showing up as white on white in light mode. Signed-off-by: Mike Szczys --- src/css/custom.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index ebfad350..7d22af95 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -30,8 +30,6 @@ --ifm-footer-title-color: var(--golioth-color-cod-gray); --ifm-footer-link-color: var(--golioth-color-cod-gray); --ifm-font-family-base: "Akkurat"; - --ifm-menu-link-sublist-icon-filter: invert(100%) sepia(94%) saturate(17%) - hue-rotate(223deg) brightness(104%) contrast(98%); } html[data-theme="dark"] { @@ -46,6 +44,8 @@ html[data-theme="dark"] { --ifm-footer-color: var(--golioth-color-cod-gray); --ifm-footer-title-color: var(--golioth-color-cod-gray); --ifm-footer-link-color: var(--golioth-color-cod-gray); + --ifm-menu-link-sublist-icon-filter: invert(100%) sepia(94%) saturate(17%) + hue-rotate(223deg) brightness(104%) contrast(98%); } @font-face { From 8ffdecfb53c9d30238a732221628208f9f53dd88 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Mon, 11 Dec 2023 11:12:50 -0600 Subject: [PATCH 58/88] footer: add forum and clean up * Add help link to the Forum * Clean up commented out code Signed-off-by: Mike Szczys --- docusaurus.config.js | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index bb94959b..0920529c 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -89,10 +89,6 @@ module.exports = { label: "API Docs", to: "/reference/rest-api/overview", }, - /*{ - label: 'Zephyr SDK', - to: 'docs/advanced/running-locally', - },*/ { label: "goliothctl", to: "/reference/command-line-tools/goliothctl/goliothctl/", @@ -103,26 +99,13 @@ module.exports = { }, ], }, - /*{ - title: 'Community', - items: [ - { - label: 'Stack Overflow', - href: 'https://stackoverflow.com/questions/tagged/docusaurus', - }, - { - label: 'Discord', - href: 'https://discordapp.com/invite/docusaurus', - }, - { - label: 'Twitter', - href: 'https://twitter.com/docusaurus', - }, - ], - },*/ { title: "More", items: [ + { + label: "Ask a Question: Golioth Forum", + href: "https://forum.golioth.io", + }, { label: "GitHub", href: "https://github.com/golioth", From 8cb7bfacf10d4ca0a0839015c82d99ca373fcd84 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Sat, 25 Nov 2023 17:31:59 -0600 Subject: [PATCH 59/88] admonitions: add golioth admonition Extend admonitions to include a Golioth admonition. Use this admonition in the same way you would built-in types: ``` :::golioth Option Title Here Your admonition message goes here. ::: ``` Signed-off-by: Mike Szczys --- docusaurus.config.js | 4 ++++ src/css/custom.css | 15 +++++++++++++++ src/theme/Admonition/Icon/Golioth.js | 11 +++++++++++ src/theme/Admonition/Type/Golioth.js | 28 ++++++++++++++++++++++++++++ src/theme/Admonition/Types.js | 10 ++++++++++ 5 files changed, 68 insertions(+) create mode 100644 src/theme/Admonition/Icon/Golioth.js create mode 100644 src/theme/Admonition/Type/Golioth.js create mode 100644 src/theme/Admonition/Types.js diff --git a/docusaurus.config.js b/docusaurus.config.js index 0920529c..1caaa752 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -150,6 +150,10 @@ module.exports = { routeBasePath: "/", sidebarPath: require.resolve("./sidebars.js"), // editUrl: 'https://github.com/golioth/golioth/edit/master/docs/', + admonitions: { + keywords: ['golioth'], + extendDefaults: true, + }, }, gtag: { trackingID: "G-C2MSLQD9D7", diff --git a/src/css/custom.css b/src/css/custom.css index 7d22af95..fe27ee31 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -114,3 +114,18 @@ iframe.youtube-embed { width: 100%; aspect-ratio: 16 / 9; } + +/* Golioth admonition */ +.alert--golioth { + --ifm-alert-background-color: var(--golioth-color-concrete); + --ifm-alert-background-color-highlight: var(--golioth-color-white); + --ifm-alert-foreground-color:var(--golioth-color-black); + --ifm-alert-border-color: var(--golioth-color-coral); +} + +html[data-theme='dark'] .alert--golioth { + --ifm-alert-background-color: var(--golioth-color-cod-gray); + --ifm-alert-background-color-highlight: var(--golioth-color-charcoal); + --ifm-alert-foreground-color: var(--golioth-color-white); + --ifm-alert-border-color: var(--golioth-color-coral); +} diff --git a/src/theme/Admonition/Icon/Golioth.js b/src/theme/Admonition/Icon/Golioth.js new file mode 100644 index 00000000..6974ef3f --- /dev/null +++ b/src/theme/Admonition/Icon/Golioth.js @@ -0,0 +1,11 @@ +import React from 'react'; +export default function AdmonitionIconGolioth(props) { + return ( + + + + ); +} diff --git a/src/theme/Admonition/Type/Golioth.js b/src/theme/Admonition/Type/Golioth.js new file mode 100644 index 00000000..91b696fb --- /dev/null +++ b/src/theme/Admonition/Type/Golioth.js @@ -0,0 +1,28 @@ +import React from 'react'; +import clsx from 'clsx'; +import Translate from '@docusaurus/Translate'; +import AdmonitionLayout from '@theme/Admonition/Layout'; +import IconGolioth from '@theme/Admonition/Icon/Golioth'; + +const infimaClassName = 'alert alert--golioth'; +const defaultProps = { + icon: , + title: ( + + golioth + + ), +}; + +export default function AdmonitionTypeGolioth(props) { + return ( + + {props.children} + + ); +} diff --git a/src/theme/Admonition/Types.js b/src/theme/Admonition/Types.js new file mode 100644 index 00000000..fd49375c --- /dev/null +++ b/src/theme/Admonition/Types.js @@ -0,0 +1,10 @@ +import React from 'react'; +import DefaultAdmonitionTypes from '@theme-original/Admonition/Types'; +import AdmonitionTypeGolioth from '@theme/Admonition/Type/Golioth'; + +const admonitionTypes = { + ...DefaultAdmonitionTypes, + golioth: AdmonitionTypeGolioth, +}; + +export default admonitionTypes; From 5ecadd67835bde9e2b47704cddec1ba175cb3466 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Tue, 12 Dec 2023 14:32:42 -0600 Subject: [PATCH 60/88] event-types: fix overview page slug Slug was interfering with correct link creation. Signed-off-by: Mike Szczys --- docs/data-routing/2-output-streams/9-event-types/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/data-routing/2-output-streams/9-event-types/README.md b/docs/data-routing/2-output-streams/9-event-types/README.md index 926b5943..87e2bf58 100644 --- a/docs/data-routing/2-output-streams/9-event-types/README.md +++ b/docs/data-routing/2-output-streams/9-event-types/README.md @@ -1,7 +1,5 @@ --- -id: overview title: Event Types Overview -slug: event-types --- The Golioth platform uses Cloud Events to communicate between services internally. With the Output Stream feature, we are making some of those events available for users to consume for use in their own applications. From bb897eb09b4b3192d3b21b3ffa2df598fe1705f0 Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Tue, 2 Jan 2024 11:18:36 -0600 Subject: [PATCH 61/88] precompiled binaries: flesh out summary page Signed-off-by: Mike Szczys --- .../3-device-examples/1-precompiled-binaries/README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/getting-started/3-device-examples/1-precompiled-binaries/README.md b/docs/getting-started/3-device-examples/1-precompiled-binaries/README.md index 5d66d89a..2a7e1dae 100644 --- a/docs/getting-started/3-device-examples/1-precompiled-binaries/README.md +++ b/docs/getting-started/3-device-examples/1-precompiled-binaries/README.md @@ -4,6 +4,15 @@ sidebar_position: 1 description: Try Golioth without needing to compile --- +The quickest way to try out Golioth is by using one of the test applications +that we offer. These include firmware binaries that are ready to flash to your +hardware. Once completed, you will be able to assign your own device credentials +to get connected. + +These test apps send and receive data, listen for fleetwide settings, +demonstrate remote procedure calls (RPC), and more. We'll walk you through it +all so that you get a solid hands-on experience. + Golioth currently offers pre-compiled binaries for three different devices: * Nordic Thingy:91 From bf17dbe2edff468f4775f19399e6c0d8b927735b Mon Sep 17 00:00:00 2001 From: Mike Szczys Date: Tue, 2 Jan 2024 15:08:02 -0600 Subject: [PATCH 62/88] getting-started: add Thingy91 precompiled binary Walk user through process of installing and using a precompiled binary on the Thingy91 Signed-off-by: Mike Szczys --- .../_partials/install_nrf_connect.md | 16 ++ ...golioth-thingy91-device-summary-screen.png | Bin 0 -> 145538 bytes .../assets/mcuboot-progress.jpg | Bin 0 -> 44033 bytes .../nrf-connect-desktop-programmer-binary.jpg | Bin 0 -> 288670 bytes .../nrf-connect-desktop-programmer-launch.jpg | Bin 0 -> 413485 bytes ...nect-desktop-serial-terminal-connected.jpg | Bin 0 -> 573367 bytes .../assets/thingy91.jpg | Bin 0 -> 1249489 bytes .../1-precompiled-binaries/thingy91.md | 187 ++++++++++++++++++ 8 files changed, 203 insertions(+) create mode 100644 docs/getting-started/3-device-examples/1-precompiled-binaries/_partials/install_nrf_connect.md create mode 100644 docs/getting-started/3-device-examples/1-precompiled-binaries/assets/golioth-thingy91-device-summary-screen.png create mode 100644 docs/getting-started/3-device-examples/1-precompiled-binaries/assets/mcuboot-progress.jpg create mode 100644 docs/getting-started/3-device-examples/1-precompiled-binaries/assets/nrf-connect-desktop-programmer-binary.jpg create mode 100644 docs/getting-started/3-device-examples/1-precompiled-binaries/assets/nrf-connect-desktop-programmer-launch.jpg create mode 100644 docs/getting-started/3-device-examples/1-precompiled-binaries/assets/thingy91-nrf-connect-desktop-serial-terminal-connected.jpg create mode 100644 docs/getting-started/3-device-examples/1-precompiled-binaries/assets/thingy91.jpg create mode 100644 docs/getting-started/3-device-examples/1-precompiled-binaries/thingy91.md diff --git a/docs/getting-started/3-device-examples/1-precompiled-binaries/_partials/install_nrf_connect.md b/docs/getting-started/3-device-examples/1-precompiled-binaries/_partials/install_nrf_connect.md new file mode 100644 index 00000000..ce44c02c --- /dev/null +++ b/docs/getting-started/3-device-examples/1-precompiled-binaries/_partials/install_nrf_connect.md @@ -0,0 +1,16 @@ +1. Download Nordic's [nRF Connect for + Desktop](https://www.nordicsemi.com/Products/Development-tools/nRF-Connect-for-desktop) + software. + + 1. **Mac and Linux Users:** According to [the Nordic install + instructions](https://infocenter.nordicsemi.com/index.jsp?topic=/struct_nrftools/struct/nrftools_nrfconnect.html) + you also need to [install the SEGGER J-Link + tools](https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack) + + 2. **Mac M1/M2 Users:** Our testing found that you must use the `Universal + Installer` version of the SEGGER tools + +2. Launch nRF Connect for Desktop. From that application, install and open the + Programmer. + + ![Nordic nRF Connect for Desktop launch the Programmer](../assets/nrf-connect-desktop-programmer-launch.jpg) diff --git a/docs/getting-started/3-device-examples/1-precompiled-binaries/assets/golioth-thingy91-device-summary-screen.png b/docs/getting-started/3-device-examples/1-precompiled-binaries/assets/golioth-thingy91-device-summary-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..292106d1ad1bf2daedc35d887f2da21a1a026dd3 GIT binary patch literal 145538 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 xrGyeD?Zd$~PX305A4uXUw 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

SyG~giq#l3jSOl| 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 z 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öi79PwX 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 SxS%`_JbJ_*cy@&STlpU^2VJ88 literal 0 HcmV?d00001 diff --git a/docs/getting-started/3-device-examples/1-precompiled-binaries/assets/nrf-connect-desktop-programmer-launch.jpg b/docs/getting-started/3-device-examples/1-precompiled-binaries/assets/nrf-connect-desktop-programmer-launch.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4e8b7fbc7b1cc9477d690ef53b00e50f8f05c8bc GIT binary patch literal 413485 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

    GH`PDKNZTLv^`s_@r{uT~BT%<|&c@NN)N$ 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/getting-started/3-device-examples/1-precompiled-binaries/assets/thingy91-nrf-connect-desktop-serial-terminal-connected.jpg b/docs/getting-started/3-device-examples/1-precompiled-binaries/assets/thingy91-nrf-connect-desktop-serial-terminal-connected.jpg new file mode 100644 index 0000000000000000000000000000000000000000..861eff9eae2d2f8e382fdff4e460efffdd479b81 GIT binary patch literal 573367 zcmbrm3p~@^A2>d#Jk=AGr&L0BkAx(5qo)hyS}Au^B)QCTx6SBE5-Pc~^&}*=#f&gh zp(SiF+t@;`Gc#hF%Ut?Rx5x8+dcME!@Bcq9FQ4;ypZ7WE{eFMW`+d&)ea_D3_Rk*y z>FngS%mX}`pN0O0ciK=x>$=Y?R;i`&DzgD-D4J85<5GYfF^3(6wex3uibbMgPO z?@3Z}x#VJ6wrnx8d@(JPT(M&La`E5t<%^B{Rd?BPNio*{bNc)mu>KcG#pOYg66*oW z)=NmPm-t)f`kM>@@wDU5hTRDuUIMd%c{>z zz^~$p%hpM*0{|rETDY~*yRIuoD;9j(^HK6;%+)=^P$NLN)Xi|fr{(uPg{O^6^z3RP zT}Az(xHDq=gH?)RtXKV?#HHc)PJ}O$tRn#K_ikTjq_|t^rt~jqb7O0=KOQ7#gSUBX zQ{GaSc=GOJ>%H#oRMk>z3Yn#)w*UU+OuN{YWT~93^z@!Cqa7MjHyV0D=Z$tJZU9`5 z0LaKnzLbi^{>mn4CCR9)x(dvF8`u=6Xknsp*7cIE{CM3}F+)b%9{_eQTc!A&x5doz zs{laEwcP-~x_bbLkCM@4y)j#c!;KV|6AnWU$|�?bsokDLZ`L=>Qs}BF6oi!i`oX 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