diff --git a/841-tinycore-micronucleus-blink/Blink.ino b/841-tinycore-micronucleus-blink/Blink.ino new file mode 100644 index 0000000..60f15e9 --- /dev/null +++ b/841-tinycore-micronucleus-blink/Blink.ino @@ -0,0 +1,79 @@ +/* -*-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 + https://raw.githubusercontent.com/SpenceKonde/ATTinyCore/master/avr/extras/ATtiny_x41.png + Caution: reverse Pinout: PA3 => Pin 3 + + Nanite841 Pinout from above (ARDUINO pins in the middle): + + button +SDO/MISO PA5 5/5 4/6 PA6 SDI/MOSI + SCK PA4 4/6 3/7 PA7 + CS PA3 3/7 2/8 PB2 + RX0 PA2 8/2 11/11 PB3 + TX0 PA1 1/9 9/1 PB1 + PA0 0/10 10/0 PB0 + GND VCC + usb + +attiny841 pins => Arduino layout + +TOCC0 OC0B pin 9 / PA1 - 841 pin 12 disabled +TOCC1 OC0A pin 8 / PA2 - 841 pin 11 disabled +TOCC2 OC1B pin 7 / PA3 - 841 pin 10 +TOCC3 OC0A pin 6 / PA4 - 841 pin 9 +TOCC4 OC0B pin 5 / PA5 - 841 pin 8 +TOCC5 OC1A pin 4 / PA6 - 841 pin 7 +TOCC6 OC2B pin 3 / PA7 - 841 pin 6 +TOCC7 OC2A pin 2 / PB2 - 841 pin 5 + +*/ + +#include +#include + +#define LED 10 // PB2 + +#define SET_OUTPUT(pin) DDRB |= (1 << pin) +#define SET_HIGH(pin) PORTB |= (1 << pin) +#define SET_LOW(pin) PORTB &= ~(1 << pin) + +void setup() { + uint8_t i = 0; + SET_OUTPUT(LED); + for (i=0; i<11; i++) { + pinMode(i, OUTPUT); + } + Serial.begin(115200); + Serial.println("init"); +} + +void loop_ard() { + uint8_t i = 0; + for (i=0; i<11; i++) { + Serial.print("Turning on pin: "); + Serial.println(i); + digitalWrite(i, HIGH); + delay(1000); + digitalWrite(i, LOW); + delay(1000); + } + delay(100); +} + +void loop_man() { + SET_HIGH(LED); + delay(1000); + SET_LOW(LED); + delay(100); +} + + +void loop() { + loop_man(); +} diff --git a/841-tinycore-micronucleus-blink/Makefile b/841-tinycore-micronucleus-blink/Makefile new file mode 100644 index 0000000..8bbdd7c --- /dev/null +++ b/841-tinycore-micronucleus-blink/Makefile @@ -0,0 +1,56 @@ +# 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/bin/avrdude +ARDUINO_LIBS = +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) + +console: + screen /dev/ttyUSB0 115200 diff --git a/841-tinycore-micronucleus-blink/hardware b/841-tinycore-micronucleus-blink/hardware new file mode 120000 index 0000000..d34e522 --- /dev/null +++ b/841-tinycore-micronucleus-blink/hardware @@ -0,0 +1 @@ +/usr/local/arduino/hardware \ No newline at end of file diff --git a/841-tinycore-micronucleus-bme280-spi-test/Makefile b/841-tinycore-micronucleus-bme280-spi-test/Makefile index a325b32..f791afa 100644 --- a/841-tinycore-micronucleus-bme280-spi-test/Makefile +++ b/841-tinycore-micronucleus-bme280-spi-test/Makefile @@ -41,7 +41,7 @@ MNINST = sudo micronucleus # compiler stuff CFLAGS_STD = -std=gnu11 CXXFLAGS_STD = -std=gnu++11 -CXXFLAGS + = -pedantic -Wall -Wextra +CXXFLAGS += -pedantic -Wall -Wextra CURRENT_DIR = $(shell pwd) # keep this! diff --git a/841-tinycore-micronucleus-vcc-sleepmode-bme280-radio-header-test/Makefile b/841-tinycore-micronucleus-vcc-sleepmode-bme280-radio-header-test/Makefile index 12bb6c0..876c6a7 100644 --- a/841-tinycore-micronucleus-vcc-sleepmode-bme280-radio-header-test/Makefile +++ b/841-tinycore-micronucleus-vcc-sleepmode-bme280-radio-header-test/Makefile @@ -22,7 +22,7 @@ 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 +AVRDUDE = /usr/bin/avrdude ARDUINO_LIBS = SPI TinyBME280 RFTransmitter ARDUINO_SKETCHBOOK = . @@ -41,7 +41,7 @@ MNINST = sudo micronucleus # compiler stuff CFLAGS_STD = -std=gnu11 CXXFLAGS_STD = -std=gnu++11 -CXXFLAGS + = -pedantic -Wall -Wextra +CXXFLAGS += -pedantic -Wall -Wextra CURRENT_DIR = $(shell pwd) # keep this! @@ -51,3 +51,6 @@ include $(ARDMK_DIR)/Arduino.mk install: $(TARGET_HEX) verify_size @echo "########### Press RESET on the Nanite! ##############" $(MNINST) $(TARGET_HEX) + +console: + screen /dev/ttyUSB0 115200 diff --git a/841-tinycore-micronucleus-vcc-sleepmode-bme280-radio-header-test/SensorSerial.ino b/841-tinycore-micronucleus-vcc-sleepmode-bme280-radio-header-test/SensorSerial.ino index d4deebe..d46ed65 100644 --- a/841-tinycore-micronucleus-vcc-sleepmode-bme280-radio-header-test/SensorSerial.ino +++ b/841-tinycore-micronucleus-vcc-sleepmode-bme280-radio-header-test/SensorSerial.ino @@ -6,19 +6,31 @@ /* ./hardware/ATTinyCore/avr/cores/tinymodern/core_pins.h + https://raw.githubusercontent.com/SpenceKonde/ATTinyCore/master/avr/extras/ATtiny_x41.png Caution: reverse Pinout: PA3 => Pin 3 - Nanite841 Pinout from above: + Nanite841 Pinout from above (ARDUINO pins in the middle): - button -SDO/MISO PA5 PA6 SDI/MOSI - SCK PA4 PA7 - CS PA3 PB2 - RX0 PA2 PB2 - TX0 PA1 PB1 - PA0 PB0 - GND VCC - usb + button +SDO/MISO PA5 5/5 4/6 PA6 SDI/MOSI + SCK PA4 4/6 3/7 PA7 + CS PA3 3/7 2/8 PB2 + RX0 PA2 8/2 11/11 PB3 + TX0 PA1 1/9 9/1 PB1 + PA0 0/10 10/0 PB0 + GND VCC + usb + +attiny841 pins => Arduino layout + +TOCC0 OC0B pin 9 / PA1 - 841 pin 12 disabled +TOCC1 OC0A pin 8 / PA2 - 841 pin 11 disabled +TOCC2 OC1B pin 7 / PA3 - 841 pin 10 +TOCC3 OC0A pin 6 / PA4 - 841 pin 9 +TOCC4 OC0B pin 5 / PA5 - 841 pin 8 +TOCC5 OC1A pin 4 / PA6 - 841 pin 7 +TOCC6 OC2B pin 3 / PA7 - 841 pin 6 +TOCC7 OC2A pin 2 / PB2 - 841 pin 5 Bosch BME280 Breakout from above pin header left: @@ -44,19 +56,19 @@ SDO/MISO PA5 PA6 SDI/MOSI #include #define NODE_ID 1 -#define OUTPUT_PIN 7 -#define LED 2 //LED_BUILTIN // PORTB2 +#define SENDER_PIN 10 // == PB0 // ARDUINO PIN# +#define LED 2 // LED_BUILTIN // PORTB2 #define CS 3 #define DELAY 5000 #define WDTREPEATS 3 static tiny::BME280 sensor; -RFTransmitter transmitter(OUTPUT_PIN, NODE_ID); +RFTransmitter transmitter(SENDER_PIN, NODE_ID); const long InternalReferenceVoltage = 1083L; #define SET_OUTPUT(pin) DDRB |= (1 << pin) -#define SET_HIGH(pin) PORTB |= (1 << pin) -#define SET_LOW(pin) PORTB &= ~(1 << pin) +#define SET_LOW(pin) PORTB |= (1 << pin) +#define SET_HIGH(pin) PORTB &= ~(1 << pin) typedef struct _measurements_t { uint32_t pres; @@ -80,13 +92,16 @@ void print_asifloat(int32_t val, uint16_t factor) { void print_measurements() { measurements_t ms; byte sendms[sizeof(measurements_t)]; - + + Serial.println("-- Enter Measure"); SET_LOW(LED); + Serial.println("-- Read measurementes"); ms.temp = sensor.readFixedTempC(); ms.humidity = sensor.readFixedHumidity(); ms.pres = sensor.readFixedPressure(); + Serial.println("-- Read VCC"); adc_enable(); adc_start(); ms.vcc = adc_get_adcw(); @@ -140,17 +155,33 @@ void setup() { sleep_setup(); } -void loop() { +void loop_nosleep() { uint8_t i; + print_measurements(); + + delay(100); +} + +void loop_sleep() { + uint8_t i; + Serial.println("-- ENTER LOOP"); + + print_measurements(); + //delay(DELAY); + for(i=0; i