769 Commits

Author SHA1 Message Date
Quentin Smith 963c903d71 p1am: support discrete inputs and outputs 2021-04-02 17:23:38 +02:00
Quentin Smith 2cec480fb8 p1am: initial driver for the base controller
All the driver can currently do is initialize the base controller and enumerate
the connected modules.
2021-04-02 17:23:38 +02:00
Quentin Smith 68da7f437b p1am: import constants from P1AM Arduino library 2021-04-02 17:23:38 +02:00
sago35 d0632fccfa add .vscode/ to .gitignore 2021-03-28 12:23:16 +02:00
sago35 2c0a74df4d delete .vscode/settings.json 2021-03-28 18:50:51 +09:00
sago35 c6228a0677 Merge remote-tracking branch 'origin/release' into dev 2021-03-28 18:44:35 +09:00
deadprogram 33ec7fc98f examples: correct go fmt error
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-03-26 18:28:41 +01:00
deadprogram 75c15d5d0b build: correct error in Makefile from invalid merge
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-03-26 18:28:12 +01:00
Nerzal e1deb45aac add 4x4 keypad driver (#226)
add 4x4 keypad driver
2021-03-26 18:19:40 +01:00
deadprogram d1cafbc2b2 docs: add missing new drivers added since last release
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-03-26 18:12:02 +01:00
Ayke van Laethem 0b6bfda8cf all: do not take the pointer of an I2C object
This is in preparation of PR
https://github.com/tinygo-org/tinygo/pull/1693, which makes machine.I2C0
and similar objects of pointer type, so they can be freely passed
around.
2021-03-26 18:10:39 +01:00
Nerzal 84408279de add 4x4 keypad driver (#226)
add 4x4 keypad driver
2021-03-26 18:10:39 +01:00
deadprogram de1e6a626a Prepare for drivers release 0.15.1 to get tag correct
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-03-26 18:10:39 +01:00
deadprogram 7531c9d334 Prepare for drivers release 0.15.0
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-03-26 18:10:39 +01:00
pleomaxx3002 ee44900c25 DHTXX driver (#235)
dhtXX: add new driver for dht thermometer
2021-03-26 18:09:48 +01:00
deadprogram b9a70aeb6f docs: add missing new drivers added since last release
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-03-26 18:05:00 +01:00
deadprogram cad0a320b7 docs: update year in license to 2021
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-03-26 18:03:15 +01:00
Nick Craig-Wood a53a39922b hd44780: add a mode to work with boards where the RW pin is grounded
On some HD44780 boards (eg the Keyestudio LCD1602 expansion shield),
the RW pin isn't brought out and is permanently grounded.

This means that the board can't be read from, and in particular the
busy status can't be read.

This patch adapts the package to work with boards like these.

To signal this to the package, set the RW pin to machine.NoPin.

The package will then disallow all reading and use adjustable timing
based writing. The timing can be adjusted the configuration.
2021-03-26 18:03:15 +01:00
deadprogram 41d6a4c3fa adc: update drivers with ADC to use new config struct
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-03-26 18:03:15 +01:00
deadprogram 60ba0e3b30 st7789: correct errors on various godoc comments
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-03-26 18:03:15 +01:00
deadprogram 2b5f43029c st7789: add scrolling functions to match st7735
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-03-26 18:03:15 +01:00
Tobias Theel a771641339 max7219: add driver support 2021-03-26 18:03:15 +01:00
deadprogram 5741ceb9d1 Prepare for drivers release 0.15.1 to get tag correct
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-03-06 13:51:27 +01:00
deadprogram 27ef18930e Prepare for drivers release 0.15.0
Signed-off-by: deadprogram <ron@hybridgroup.com>
v0.15.1
2021-03-06 13:41:58 +01:00
deadprogram e9a6d96ddd docs: update count of supported drivers to add latest contribution
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-03-05 09:26:56 +01:00
pleomaxx3002 9a7cb1a22f DHTXX driver (#235)
dhtXX: add new driver for dht thermometer
2021-03-05 09:24:45 +01:00
deadprogram d170ec8d81 docs: add missing new drivers added since last release
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-03-05 00:36:50 +01:00
deadprogram 0fc2d28ca8 docs: update year in license to 2021
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-03-05 00:09:22 +01:00
Nick Craig-Wood ef34c13cc1 hd44780: add a mode to work with boards where the RW pin is grounded
On some HD44780 boards (eg the Keyestudio LCD1602 expansion shield),
the RW pin isn't brought out and is permanently grounded.

This means that the board can't be read from, and in particular the
busy status can't be read.

This patch adapts the package to work with boards like these.

To signal this to the package, set the RW pin to machine.NoPin.

The package will then disallow all reading and use adjustable timing
based writing. The timing can be adjusted the configuration.
2021-02-23 12:28:38 +01:00
deadprogram c64d7920dc adc: update drivers with ADC to use new config struct
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-02-01 14:35:51 +01:00
deadprogram 008157b6c9 st7789: correct errors on various godoc comments
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-01-31 16:57:21 +01:00
deadprogram 0ed9683a52 st7789: add scrolling functions to match st7735
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-01-31 16:57:21 +01:00
deadprogram 01acd977f3 microbitmatrix: refactor to eliminate duplicate code with microbit v1/v2
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-01-28 10:09:01 +01:00
deadprogram 231ec57202 microbitmatrix: matrix now working on microbit v2
Signed-off-by: deadprogram <ron@hybridgroup.com>
2021-01-28 10:09:01 +01:00
Ayke van Laethem 5d3ad4ba52 all: fix main package in examples
The package with the main function should always have the name main.
This was not the case in three packages.

This was silently allowed before, but since a TinyGo change
(https://github.com/tinygo-org/tinygo/pull/1592) this now results in a
linker failure.

Perhaps this should result in a better error message in TinyGo. However,
the example code also needs to be fixed, so hence this PR.
2021-01-27 23:50:58 +01:00
Roger Peppe 8cb226938b mcp23017: use new tester package
Also change the `tester` package slightly to use an exposed `Registers`
array rather adding yet another accessor method to retrieve a register
value. This seems to me more transparent and "obvious" - we aren't trying
to hide the fact that there's just a simple memory store there.
Also unexport the `assertRegisterRange` method which was never intended
to be part of the public API.
2021-01-20 12:56:22 +01:00
Roger Peppe ce5e443084 mcp23017: implement pin toggling
Also add an example for using multiple devices.
2021-01-20 12:56:22 +01:00
Roger Peppe edf9ba92be mcp23017: new driver for MCP23017 (I2C port expander) 2021-01-20 12:56:22 +01:00
Austen LeBeau c1c05cbef7 Add bmp388 support (#219)
bmp388: add support
2021-01-08 11:32:49 +01:00
Daniel Esteban c338348d2b Better interface "ReadTime" instead of "Time" for DS1307 2020-12-22 08:16:13 +01:00
deadprogram b6aa674b2a test: run unit tests against i2c drivers and any spi drivers without direct gpio
Signed-off-by: deadprogram <ron@hybridgroup.com>
2020-12-15 06:08:59 +01:00
deadprogram cc7079b0cd drivers/flash: restore previous calls directly to machine package until we implement SetClockSpeed()
Signed-off-by: deadprogram <ron@hybridgroup.com>
2020-12-15 06:08:59 +01:00
deadprogram 42a907035b spi: incorporate change from GH issue feedback
Signed-off-by: deadprogram <ron@hybridgroup.com>
2020-12-15 06:08:59 +01:00
deadprogram 46c9ba9595 spi: remove machine.SPI and replace with drivers.SPI interface for almost all SPI drivers
Signed-off-by: deadprogram <ron@hybridgroup.com>
2020-12-15 06:08:59 +01:00
Ayke van Laethem df64ce8f50 ws2812: make AVR support more robust
* Merge AVR support for Digispark and non-Digispark
* Fix the error "inline assembly requires more registers than available"
* Use a single file for all AVR targets, in a similar style as the
  Xtensa support.
2020-10-16 18:36:32 +02:00
deadprogram e376785596 Prepare for Drivers release 0.14.0
Signed-off-by: deadprogram <ron@hybridgroup.com>
v0.15.0 v0.14.0
2020-09-17 10:09:25 +02:00
Amblyopius 4c98d0bc34 - Fix for RAMWR bug:
It can not be skipped as you may call setwindow even if device is not ready for data write to buffer.
Data can only be written if last command was Memory Write or Write Memory Continue which was not guaranteed
There's no performance loss as having the exact same window on a consecutive call is extremely unlikely
- Fixed some typos and added a few missing comments to please go-lint
2020-09-11 11:31:07 +02:00
Ayke van Laethem 65f8299153 ws2812: add support for ESP8266
This patch adds support for the ESP8266 chip by adding support for 80MHz
operation. This should also work when the ESP32 is changed to 80MHz, but
I didn't test it (as there is not currently a way to do that).

Verified on a NodeMCU dev board with an ESP8266.
2020-09-09 22:43:35 +02:00
BCG a689aef543 Renamed NewSpi() to NewSPI() in accordance with Go naming conventions 2020-09-07 09:11:25 +02:00
Ayke van Laethem 7cd7df7bb8 ws2812: add support for the Xtensa architecture
This allows WS2812 LEDs to be controlled by an ESP32. Right now it only
supports 160MHz operation, which is the default with current ESP32
support in TinyGo.
2020-09-05 14:01:22 +02:00