Toit is a modern high-level language designed specifically for microcontrollers
Toit is optimised for live reloading on your microcontroller. Your code runs incrementally as you write it and you get instant feedback. Push changes over your local WiFi in two seconds and reserve your USB cable for charging your phone. You iterate quickly, learn fast, and build better things.
What if you want to say "Hello" a lot without getting your fingers all tired? You should define a function. Calling a function in Toit is as simple as mentioning its name. If the function doesn’t take arguments that’s all you need.Learn more...
hi: print "Hello World!" greet name: print "Hello $name!" main: hi greet "Kasper"
Follow this easy step-by-step guide to get up and running with Toit.
Download and get started with the latest version of Toit.
Learn how to code with Toit and how you can use it in your IoT projects.
Toit + Jaguar = 🥳
Jaguar is a small application developed by the Toit team, that runs on your ESP32. It enables live reloading and lets you update and restart your ESP32 code over WiFi.
Update your code and restart your ESP32 conveniently over WiFi. No need to flash over serial, reboot your device, or wait for it to reconnect to your network.
Change your code in your editor, update it on your device, and restart it all within seconds.
Updates contain compiled Toit programs that are relocated and installed in flash on the device. Old versions are stopped and their resources are freed automatically.
Toit v2.0.0-alpha.16 release Aug. 15th, 2022
Add signal strength accessor to WiFi networks. Wait for services to appear by default. Add Task.deadline. Allow numbers in constant variable names.
Toit v2.0.0-alpha.15 release Aug. 8th, 2022
Embed the boot snapshot in the executable. Only run specific containers on boot. Add resource for monitoring containers after starting them. Allow to compile Toit programs to executables. Fix GPIO pin close. General BLE fixes.
Toit v2.0.0-alpha.14 release Aug. 2nd, 2022
Bug fix: Unbreak wifi.establish.
Toit v2.0.0-alpha.13 release Aug. 2nd, 2022
Added support for Raspberry Pi. Added `Gate` to the monitor library and fixed semaphores. Made the `Task` class public. Improved the integration with Jaguar. The device name is now the one given by Jaguar. Added `ceil`, `floor`, and `truncate` to floats. Added support for UART on Linux. Added `flush` to the UART Port class. Allow to update the WiFi credentials. Use fewer resources in the background: don't use a thread to listen for GPIO events. Add support for the DAC. Add support for touch pads.
Toit v2.0.0-alpha.12 release Jul. 1st, 2022
Updated the http examples. Fixed the ADC tear-down.
Toit v2.0.0-alpha.11 release Jul. 1st, 2022
Add cellular API. Add string.substitute. Include total when printing object histograms. Merge the latest esp-idf 4.3 changes.
Writing a driver in Toit
Just a few lines of Toit code are needed to reap the full benefits of the Toit ecosystem — without having to rely on firmware developers.
Choosing Toit for your IoT project means that your ESP32-based devices become as easy to program as smartphones: develop your app, deploy it to the devices of your choice, and then update and reinstall as often as needed, even on a shaky connection — all that while the other apps on the device keep running. Welcome to the 21st century, IoT!