From f35a06d949bf7288a66487350acf434333eb220f Mon Sep 17 00:00:00 2001 From: deadprogram Date: Sat, 26 Oct 2024 02:07:27 +0200 Subject: [PATCH 1/3] feature: move all currently known supported boards with displays into subpackage Signed-off-by: deadprogram --- {examples/initdisplay => displays}/badger2040.go | 4 ++-- {examples/initdisplay => displays}/clue.go | 4 ++-- {examples/initdisplay => displays}/gopher-badge.go | 4 ++-- {examples/initdisplay => displays}/pybadge.go | 6 +++--- {examples/initdisplay => displays}/pyportal.go | 4 ++-- {examples/initdisplay => displays}/wioterminal.go | 4 ++-- examples/basic/main.go | 6 +++--- examples/colors/main.go | 4 ++-- examples/httpclient/main.go | 4 ++-- 9 files changed, 20 insertions(+), 20 deletions(-) rename {examples/initdisplay => displays}/badger2040.go (92%) rename {examples/initdisplay => displays}/clue.go (92%) rename {examples/initdisplay => displays}/gopher-badge.go (91%) rename {examples/initdisplay => displays}/pybadge.go (85%) rename {examples/initdisplay => displays}/pyportal.go (91%) rename {examples/initdisplay => displays}/wioterminal.go (92%) diff --git a/examples/initdisplay/badger2040.go b/displays/badger2040.go similarity index 92% rename from examples/initdisplay/badger2040.go rename to displays/badger2040.go index 4ef2772..52248d2 100644 --- a/examples/initdisplay/badger2040.go +++ b/displays/badger2040.go @@ -1,6 +1,6 @@ //go:build badger2040 || badger2040_w -package initdisplay +package displays import ( "machine" @@ -9,7 +9,7 @@ import ( "tinygo.org/x/tinyterm" ) -func InitDisplay() tinyterm.Displayer { +func Init() tinyterm.Displayer { led3v3 := machine.ENABLE_3V3 led3v3.Configure(machine.PinConfig{Mode: machine.PinOutput}) led3v3.High() diff --git a/examples/initdisplay/clue.go b/displays/clue.go similarity index 92% rename from examples/initdisplay/clue.go rename to displays/clue.go index efef4ab..c522255 100644 --- a/examples/initdisplay/clue.go +++ b/displays/clue.go @@ -1,6 +1,6 @@ //go:build clue_alpha -package initdisplay +package displays import ( "image/color" @@ -10,7 +10,7 @@ import ( "tinygo.org/x/tinyterm" ) -func InitDisplay() tinyterm.Displayer { +func Init() tinyterm.Displayer { machine.SPI1.Configure(machine.SPIConfig{ Frequency: 8000000, SCK: machine.TFT_SCK, diff --git a/examples/initdisplay/gopher-badge.go b/displays/gopher-badge.go similarity index 91% rename from examples/initdisplay/gopher-badge.go rename to displays/gopher-badge.go index 6a67bd8..28fefc5 100644 --- a/examples/initdisplay/gopher-badge.go +++ b/displays/gopher-badge.go @@ -1,6 +1,6 @@ //go:build gopher_badge -package initdisplay +package displays import ( "image/color" @@ -10,7 +10,7 @@ import ( "tinygo.org/x/tinyterm" ) -func InitDisplay() tinyterm.Displayer { +func Init() tinyterm.Displayer { machine.SPI0.Configure(machine.SPIConfig{ Frequency: 8000000, Mode: 0, diff --git a/examples/initdisplay/pybadge.go b/displays/pybadge.go similarity index 85% rename from examples/initdisplay/pybadge.go rename to displays/pybadge.go index 6cdc930..07038f2 100644 --- a/examples/initdisplay/pybadge.go +++ b/displays/pybadge.go @@ -1,6 +1,6 @@ //go:build pybadge -package initdisplay +package displays import ( "image/color" @@ -10,7 +10,7 @@ import ( "tinygo.org/x/tinyterm" ) -func InitDisplay() tinyterm.Displayer { +func Init() tinyterm.Displayer { machine.SPI1.Configure(machine.SPIConfig{ SCK: machine.SPI1_SCK_PIN, SDO: machine.SPI1_SDO_PIN, @@ -20,7 +20,7 @@ func InitDisplay() tinyterm.Displayer { display := st7735.New(machine.SPI1, machine.TFT_RST, machine.TFT_DC, machine.TFT_CS, machine.TFT_LITE) display.Configure(st7735.Config{ - Rotation: st7735.ROTATION_180, + Rotation: st7735.ROTATION_90, }) display.FillScreen(color.RGBA{0, 0, 0, 255}) diff --git a/examples/initdisplay/pyportal.go b/displays/pyportal.go similarity index 91% rename from examples/initdisplay/pyportal.go rename to displays/pyportal.go index dc27528..c1cb270 100644 --- a/examples/initdisplay/pyportal.go +++ b/displays/pyportal.go @@ -1,6 +1,6 @@ //go:build pyportal -package initdisplay +package displays import ( "image/color" @@ -10,7 +10,7 @@ import ( "tinygo.org/x/tinyterm" ) -func InitDisplay() tinyterm.Displayer { +func Init() tinyterm.Displayer { display := ili9341.NewParallel( machine.LCD_DATA0, machine.TFT_WR, diff --git a/examples/initdisplay/wioterminal.go b/displays/wioterminal.go similarity index 92% rename from examples/initdisplay/wioterminal.go rename to displays/wioterminal.go index 10c3475..f2ec623 100644 --- a/examples/initdisplay/wioterminal.go +++ b/displays/wioterminal.go @@ -1,6 +1,6 @@ //go:build wioterminal -package initdisplay +package displays import ( "image/color" @@ -10,7 +10,7 @@ import ( "tinygo.org/x/tinyterm" ) -func InitDisplay() tinyterm.Displayer { +func Init() tinyterm.Displayer { machine.SPI3.Configure(machine.SPIConfig{ SCK: machine.LCD_SCK_PIN, SDO: machine.LCD_SDO_PIN, diff --git a/examples/basic/main.go b/examples/basic/main.go index cac2d03..d293f5b 100644 --- a/examples/basic/main.go +++ b/examples/basic/main.go @@ -6,7 +6,7 @@ import ( "tinygo.org/x/tinyfont/proggy" "tinygo.org/x/tinyterm" - "tinygo.org/x/tinyterm/examples/initdisplay" + "tinygo.org/x/tinyterm/displays" ) var ( @@ -14,14 +14,14 @@ var ( ) func main() { - display := initdisplay.InitDisplay() + display := displays.Init() terminal := tinyterm.NewTerminal(display) terminal.Configure(&tinyterm.Config{ Font: font, FontHeight: 10, FontOffset: 6, - UseSoftwareScroll: initdisplay.NeedsSoftwareScroll(), + UseSoftwareScroll: displays.NeedsSoftwareScroll(), }) for { time.Sleep(time.Second) diff --git a/examples/colors/main.go b/examples/colors/main.go index da347c8..e737118 100644 --- a/examples/colors/main.go +++ b/examples/colors/main.go @@ -7,7 +7,7 @@ import ( "tinygo.org/x/tinyfont/proggy" "tinygo.org/x/tinyterm" - "tinygo.org/x/tinyterm/examples/initdisplay" + "tinygo.org/x/tinyterm/displays" ) var ( @@ -15,7 +15,7 @@ var ( ) func main() { - display := initdisplay.InitDisplay() + display := displays.Init() terminal := tinyterm.NewTerminal(display) terminal.Configure(&tinyterm.Config{ diff --git a/examples/httpclient/main.go b/examples/httpclient/main.go index 80587db..5dfc6a1 100644 --- a/examples/httpclient/main.go +++ b/examples/httpclient/main.go @@ -20,7 +20,7 @@ import ( "tinygo.org/x/drivers/netlink/probe" "tinygo.org/x/tinyfont/proggy" "tinygo.org/x/tinyterm" - "tinygo.org/x/tinyterm/examples/initdisplay" + "tinygo.org/x/tinyterm/displays" ) var ( @@ -39,7 +39,7 @@ var ( ) func main() { - display := initdisplay.InitDisplay() + display := displays.Init() terminal := tinyterm.NewTerminal(display) terminal.Configure(&tinyterm.Config{ From f9f928e4e9d224a6b67ce09ebc8e10f119848a02 Mon Sep 17 00:00:00 2001 From: deadprogram Date: Sun, 27 Oct 2024 18:29:33 +0100 Subject: [PATCH 2/3] feature: add Display() method for displays that require it Signed-off-by: deadprogram --- tinyterm.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tinyterm.go b/tinyterm.go index 28d3548..7168484 100644 --- a/tinyterm.go +++ b/tinyterm.go @@ -121,6 +121,12 @@ func (t *Terminal) Println(args ...interface{}) (n int, err error) { return fmt.Fprintln(t, args...) } +// Display the terminal on the display. Must be called after writing to the +// terminal to see the changes. +func (t *Terminal) Display() { + t.display.Display() +} + type state uint8 const ( From 0d5a582e811ef86ccdf22273ecb74bb6506cf106 Mon Sep 17 00:00:00 2001 From: deadprogram Date: Sun, 27 Oct 2024 18:30:21 +0100 Subject: [PATCH 3/3] examples: call terminal.Display() method to ensure display updates Signed-off-by: deadprogram --- examples/basic/main.go | 2 +- examples/colors/main.go | 2 ++ examples/httpclient/main.go | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/examples/basic/main.go b/examples/basic/main.go index d293f5b..c24ea87 100644 --- a/examples/basic/main.go +++ b/examples/basic/main.go @@ -27,6 +27,6 @@ func main() { time.Sleep(time.Second) fmt.Fprintf(terminal, "\ntime: %d", time.Now().UnixNano()) - display.Display() + terminal.Display() } } diff --git a/examples/colors/main.go b/examples/colors/main.go index e737118..00982f7 100644 --- a/examples/colors/main.go +++ b/examples/colors/main.go @@ -49,6 +49,8 @@ func main() { } terminal.Write([]byte(strings.Repeat(" ", 12) + "|\n")) terminal.Write([]byte(" " + strings.Repeat("\xaf", 36) + "\n")) + + terminal.Display() time.Sleep(5 * time.Second) } diff --git a/examples/httpclient/main.go b/examples/httpclient/main.go index 5dfc6a1..663ff3d 100644 --- a/examples/httpclient/main.go +++ b/examples/httpclient/main.go @@ -90,6 +90,8 @@ func main() { cnt++ fmt.Fprintf(terminal, "-------- %d --------\r\n", cnt) + + terminal.Display() time.Sleep(10 * time.Second) } }