Ayke van Laethem deca190ba2 ili9341: add EnableTEOutput to be able to sync drawing with VSYNC
Many displays don't have the TE pin exposed. But those that do have the
pin (for example, the PyPortal) can use it to synchronize writing a new
image to the display. When implemented correctly, tearing can be avoided
entirely.

This commit also changes the LCD refresh direction to either
top-to-bottom or left-to-right depending on the rotation. Previously it
might refresh from right-to-left or bottom-to-top. This has little
impact on code that doesn't use the TE line, but code that does now only
needs to worry about two cases (top-to-bottom and left-to-right) instead
of four.
(Unfortunately, it appears that the hardware doesn't support changing
the major LCD refresh order so code that wants to do tear-free rendering
still needs to care about these two cases).
2023-05-20 15:22:14 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2021-05-12 09:21:52 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-12-20 11:13:43 +01:00
2021-05-30 22:11:27 +02:00
2021-01-08 11:32:49 +01:00
2022-12-19 22:01:39 +01:00
2022-12-21 17:47:14 -05:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2021-03-26 18:10:39 +01:00
2022-04-08 15:41:46 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2021-05-12 15:29:18 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2022-09-25 13:23:16 +02:00
2021-12-14 09:14:10 +09:00
2021-03-28 12:23:16 +02:00
2023-02-12 22:30:48 +01:00
2022-09-25 13:23:16 +02:00
2023-04-30 01:11:18 +02:00
2023-05-07 12:30:44 +02:00
2023-05-07 12:30:44 +02:00
2021-04-02 17:31:28 +02:00
2023-02-12 22:30:48 +01:00

TinyGo Drivers

PkgGoDev Build

This package provides a collection of hardware drivers for devices such as sensors and displays that can be used together with TinyGo.

Installing

go get tinygo.org/x/drivers

How to use

Here is an example in TinyGo that uses the BMP180 digital barometer:

package main

import (
    "time"

    "machine"

    "tinygo.org/x/drivers/bmp180"
)

func main() {
    machine.I2C0.Configure(machine.I2CConfig{})
    sensor := bmp180.New(machine.I2C0)
    sensor.Configure()

    connected := sensor.Connected()
    if !connected {
        println("BMP180 not detected")
        return
    }
    println("BMP180 detected")

    for {
        temp, _ := sensor.ReadTemperature()
        println("Temperature:", float32(temp)/1000, "°C")

        pressure, _ := sensor.ReadPressure()
        println("Pressure", float32(pressure)/100000, "hPa")

        time.Sleep(2 * time.Second)
    }
}

Supported devices

There are currently 94 devices supported. For the complete list, please see: https://tinygo.org/docs/reference/devices/

Contributing

Your contributions are welcome!

Please take a look at our CONTRIBUTING.md document for details.

License

This project is licensed under the BSD 3-clause license, just like the Go project itself.

S
Description
TinyGo drivers for sensors, displays, wireless adaptors, and other devices that use I2C, SPI, GPIO, ADC, and UART interfaces.
Readme BSD-3-Clause 26 MiB
Latest
2026-04-21 08:44:44 +00:00
Languages
Go 99.1%
Shell 0.7%