From 388b17763f1e93b9d12748163d2e01953381d343 Mon Sep 17 00:00:00 2001 From: Thomas von Dein Date: Sat, 29 Feb 2020 16:30:00 +0100 Subject: [PATCH] working version with SPI w/o blinking --- .../Makefile | 53 ++++++++++++ .../README.md | 17 ++++ .../SensorSerial.ino | 82 +++++++++++++++++++ .../hardware | 1 + .../libraries/SPI | 1 + .../libraries/TinyBME280 | 1 + 6 files changed, 155 insertions(+) create mode 100644 841-tinycore-micronucleus-bme280-spi-test/Makefile create mode 100644 841-tinycore-micronucleus-bme280-spi-test/README.md create mode 100644 841-tinycore-micronucleus-bme280-spi-test/SensorSerial.ino create mode 120000 841-tinycore-micronucleus-bme280-spi-test/hardware create mode 120000 841-tinycore-micronucleus-bme280-spi-test/libraries/SPI create mode 160000 841-tinycore-micronucleus-bme280-spi-test/libraries/TinyBME280 diff --git a/841-tinycore-micronucleus-bme280-spi-test/Makefile b/841-tinycore-micronucleus-bme280-spi-test/Makefile new file mode 100644 index 0000000..a325b32 --- /dev/null +++ b/841-tinycore-micronucleus-bme280-spi-test/Makefile @@ -0,0 +1,53 @@ +# Arduino Make file. Refer to https://github.com/sudar/Arduino-Makefile + +# attiny841: +# BOARD_TAG = attinyx41 +# BOARD_SUB = 841 +# attiny861: +# BOARD_TAG = attinyx61 +# BOARD_SUB = 861 +# attiny85: +# BOARD_TAG = attinyx5 +# BOARD_SUB = 85 +# attiny84: +# BOARD_TAG = attinyx4 +# BOARD_SUB = 84 + +ARDUINO_VERSION = 10810 + +PROJECT_DIR = $(shell pwd) +BOARD_TAG = attinyx41 +BOARD_SUB = 841 +ARDUINO_DIR = /usr/local/arduino +ARDMK_DIR = /usr/local/arduino/Arduino-Makefile +MONITOR_PORT = /dev/ttyACM0 +ISP_PORT = /dev/ttyACM0 +AVRDUDE = /usr/local/bin/avrdude +ARDUINO_LIBS = SPI TinyBME280 +ARDUINO_SKETCHBOOK = . + +# mk stuff +ALTERNATE_CORE = ATTinyCore +F_CPU = 8000000L +MONITOR_BAUDRATE = 115200 +AVRDUDE_ARD_PROGRAMMER = stk500v2 +AVRDUDE_ARD_BAUDRATE = 9600 +AVR_TOOLS_DIR = /usr/local/avr +AVRDUDE_CONF = /usr/local/etc/avrdude.conf + +# Micronucleus +MNINST = sudo micronucleus + +# compiler stuff +CFLAGS_STD = -std=gnu11 +CXXFLAGS_STD = -std=gnu++11 +CXXFLAGS + = -pedantic -Wall -Wextra +CURRENT_DIR = $(shell pwd) + +# keep this! +include $(ARDMK_DIR)/Arduino.mk + +# install using micronucleus +install: $(TARGET_HEX) verify_size + @echo "########### Press RESET on the Nanite! ##############" + $(MNINST) $(TARGET_HEX) diff --git a/841-tinycore-micronucleus-bme280-spi-test/README.md b/841-tinycore-micronucleus-bme280-spi-test/README.md new file mode 100644 index 0000000..fe21e57 --- /dev/null +++ b/841-tinycore-micronucleus-bme280-spi-test/README.md @@ -0,0 +1,17 @@ +# Usable Pins + +``` +PIN_A0 (10) +PIN_A1 ( 9) +PIN_A2 ( 8) +PIN_A3 ( 7) +PIN_A4 ( 6) +PIN_A5 ( 5) +PIN_A6 ( 4) +PIN_A7 ( 3) +PIN_B0 ( 0) +PIN_B1 ( 1) +PIN_B2 ( 2) +PIN_B3 (11) /* RESET */ +LED_BUILTIN (2) +``` diff --git a/841-tinycore-micronucleus-bme280-spi-test/SensorSerial.ino b/841-tinycore-micronucleus-bme280-spi-test/SensorSerial.ino new file mode 100644 index 0000000..588d95c --- /dev/null +++ b/841-tinycore-micronucleus-bme280-spi-test/SensorSerial.ino @@ -0,0 +1,82 @@ +/* -*-c++-*- + Blink + Turns on an LED on for one second, then off for one second, repeatedly. + This example code is in the public domain. + */ + +/* + ./hardware/ATTinyCore/avr/cores/tinymodern/core_pins.h + Caution: reverse Pinout: PA3 => Pin 3 + + Nanite841 Pinout from above: + + button +SDO/MISO PA5 PA6 SDI/MOSI + SCK PA4 PA7 + CS PA3 PB2 + RX0 PA2 PB2 + TX0 PA1 PB1 + PA0 PB0 + GND VCC + usb + + Bosch BME280 Breakout from above pin header left: + + VCC + GND + SCL => SCK + SDI => MOSI + CSB => PA3/3 + SDO => MISO + + */ + +#define TINY_BME280_SPI +#include + +#define LED LED_BUILTIN +#define CS 3 + +tiny::BME280 sensor; +uint32_t pres, humidity; +int32_t temp; + + +void print_measurements() { + temp = sensor.readFixedTempC(); + humidity = sensor.readFixedHumidity(); + pres = sensor.readFixedPressure(); + + Serial.print(" Temperature: "); + Serial.print(temp / 100.0); + Serial.println(" Grad C"); + Serial.print(" Pressure: "); + Serial.print(pres / 100.0); + Serial.println(" hPa"); + Serial.print(" Humidity: "); + Serial.print(humidity / 1000.0); + Serial.println(" %"); + Serial.println(); +} + +void halt() { + while(1); +} + +void setup() { + pinMode(LED, OUTPUT); + Serial.begin(115200); + Serial.println("init"); + howlong = 500; + if(sensor.beginSPI(CS) == false) { + Serial.println("Sensor BME280 connect failed, check wiring!"); + halt(); + } + +} + +void loop() { + print_measurements(); + delay(2000); +} + diff --git a/841-tinycore-micronucleus-bme280-spi-test/hardware b/841-tinycore-micronucleus-bme280-spi-test/hardware new file mode 120000 index 0000000..d34e522 --- /dev/null +++ b/841-tinycore-micronucleus-bme280-spi-test/hardware @@ -0,0 +1 @@ +/usr/local/arduino/hardware \ No newline at end of file diff --git a/841-tinycore-micronucleus-bme280-spi-test/libraries/SPI b/841-tinycore-micronucleus-bme280-spi-test/libraries/SPI new file mode 120000 index 0000000..56e807e --- /dev/null +++ b/841-tinycore-micronucleus-bme280-spi-test/libraries/SPI @@ -0,0 +1 @@ +/usr/local/arduino/hardware/ATTinyCore/avr/libraries/SPI \ No newline at end of file diff --git a/841-tinycore-micronucleus-bme280-spi-test/libraries/TinyBME280 b/841-tinycore-micronucleus-bme280-spi-test/libraries/TinyBME280 new file mode 160000 index 0000000..87e0b29 --- /dev/null +++ b/841-tinycore-micronucleus-bme280-spi-test/libraries/TinyBME280 @@ -0,0 +1 @@ +Subproject commit 87e0b2959c154de009b0550d405623cedc1b72af