This section covers the essential setups you need to get started. From setting up your development environment to writing your first program and understanding Toit's package system.


This section explores various hardware aspects. From controlling output pins to using the I2C bus or BLE, it provides a comprehensive understanding of interfacing with different hardware components.



Tutorials on controlling output devices, such as LEDs.

Pulse Width Modulation

Pulse Width Modulation (PWM) is a technique for controlling the average power delivered by an electrical signal. By averaging the output over time, the result is an analog signal that can be used to control devices such as motors, LEDs, and buzzers.


Tutorials on using pins as input.


This section provides an introduction to I2C and guides you through using it with different sensors and devices.

Miscellaneous hardware components

Tutorials on how to use a variety of other hardware components you may find useful in your projects.


Learn how power management works and save precious battery life.


Learn the basics of Bluetooth Low Energy (BLE).

The following tutorials teach you how to advertise data, scan for nearby devices, and connect to a BLE device.


Get to know about how to use the network capabilities of your device.


Learn how to use containers to run multiple programs independently on your device, and how they can communicate with each other.


Build your own envelope with custom firmware configurations or C services.

Common tasks

Learn how to carry out common tasks such as working with dates and times, and synchronizing the time with an NTP server.

Starter projects

A few simple projects to get you started.

import Adafruit from "../_images/adafruit_io_logo.svg"; import Adc from "../_images/adc_symbol.svg"; import AwsIotCore from "../_images/aws_iot_core.png"; import BluetoothLogo from "../_images/bluetooth_logo.svg"; import CellTower from "../_images/cellular_tower.svg"; import Date from "../_images/date.svg"; import GoogleSheets from "../_images/google_sheets.png"; import HelloWorld from "../_images/hello_world.png"; import Http from "../_images/http_logo.svg"; import Binary from "../_images/hw_binary.jpg"; import Bme280 from "../_images/hw_bme280.jpg"; import HwButton from "../_images/hw_button.jpg"; import Buzzer from "../_images/hw_buzzer.jpg"; import Dht11 from "../_images/hw_dht11.jpg"; import Ds18b20 from "../_images/hw_ds18b20.jpg"; import HwLed from "../_images/hw_led.jpg"; import HwLeds from "../_images/hw_leds.jpg"; import Neopixel from "../_images/hw_neopixel.jpg"; import Potentiometer from "../_images/hw_potentiometer.jpg"; import Servo from "../_images/hw_servo.jpg"; import Ssd1360 from "../_images/hw_ssd1306.jpg"; import Ultra from "../_images/hw_ultra.jpg"; import I2c from "../_images/i2c_logo.svg"; import Ota from "../_images/ota.png"; import Packages from "../_images/packages.svg"; import PwmWiki from "../_images/pwm.png"; import Qubitro from "../_images/qubitro_logo.svg"; import SetupIde from "../_images/setup_ide.png"; import Shushing from "../_images/shushing_face.svg"; import Sleep from "../_images/sleep.svg"; import Supabase from "../_images/supabase_logo.svg"; import Telegram from "../_images/telegram_logo.svg"; import Time from "../_images/time.svg"; import ToitLogo from "../_images/toit_logo.svg"; import Watchdog from "../_images/watchdog.svg";