Tutorials
Setup
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.
IDE
Set up Visual Studio Code and Jaguar for local development.
Hello world
Write a simple program that runs "hello world" on your device.
Packages
A description of Toit's package system.
Hardware
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.
Pins
Output
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.
Fading LED
Use PWM to fade an LED.
Servo
Use PWM to control a servo motor.
Buzzer
Use PWM to control a buzzer.
Input
Tutorials on using pins as input.
Button
Use a button.
Binary sensors
Use binary sensors.
Touch sensor
Analog to Digital Converter
Use the built-in analog-to-digital converter (ADC).
Potentiometer
Use a potentiometer with an ADC.
I2C
This section provides an introduction to I2C and guides you through using it with different sensors and devices.
I2C introduction
An introduction to I2C.
BME280
Measure temperature, humidity, and pressure with a BME280 sensor.
SSD1306
Pixel graphics on an SSD1306 display.
Miscellaneous hardware components
Tutorials on how to use a variety of other hardware components you may find useful in your projects.
Neopixel
Use a neopixel LED strip/ring.
DHT11
Use a DHT11 sensor to measure temperature and humidity.
DS18B20
Use a DS18B20 sensor to measure the temperature.
HC-SR04
Measure distance with an HC-SR04 ultrasonic distance sensor.
Power
Learn how power management works and save precious battery life.
BLE
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.
BLE
Introduction to BLE.
Advertise
Scan
Client
Network
Get to know about how to use the network capabilities of your device.
HTTP
Connect to the internet with HTTP.
HTTP chat server
Write an HTTP chat server using websockets.
HTTP File server
Build a simple file server with HTTP. This server runs on your desktop computer and not on your device.
Google Sheets
Send data to a Google Sheets spreadsheet.
Telegram
Communicate with your device through Telegram.
Supabase
Store data in a Supabase database.
MQTT
MQTT with Adafruit
Use Adafruit IO as your MQTT broker.
MQTT with AWS IoT Core
Use AWS IoT Core as your MQTT broker.
MQTT with Qubitro
Use Qubitro as your MQTT broker through Toit services.
Containers
Learn how to use containers to run multiple programs independently on your device, and how they can communicate with each other.
Containers
Containers with the SDK
Containers with Jaguar
Containers with Artemis
Services
Envelopes
Build your own envelope with custom firmware configurations or C services.
Customized envelope
Create an envelope with a changed configuration.
Customized local envelope
Create and build an envelope with a changed configuration locally.
Communicate with a C service
Create an envelope with a C library and communicate with it.
Common tasks
Learn how to carry out common tasks such as working with dates and times, and synchronizing the time with an NTP server.
Date, time, and NTP
Learn how to synchronize the time with an NTP server, and how to work with dates and times.
Secrets
Learn how to work with secrets in your Toit project.
Over the air updates
Learn how to update your device's firmware over the air.
Watchdog
Ensure that your device never gets stuck and is always running with a watchdog.
Starter projects
A few simple projects to get you started.