Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
P

Ptibu

@Ptibu
About
Posts
10
Topics
0
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • 💬 Sensebender Micro mk2
    P Ptibu

    @tbowmo
    Another big advantage of the SAML over the SAMD is the embedded AES core. It would allow strong crypto for both comm & data encryption (at MCU level, not radio) and authentication (ex: AES based CMAC). In this case, the ATSHA is not needed anymore for auth but it will break compatibility with existing ATSHA based boards (unless implementing SHA256 in SW).
    For what I can see, cost for SAML is about the same than SAMD + ATSHA (+/- 0.5€).

    For new (secured) mysensors networks, SAML would have nice advantages with comparable price (+dev efforts of course).

    OpenHardware.io temperature sensebender samd humidity

  • nRF5 Multi Sensor Board (12-14€)
    P Ptibu

    @MiKa Here is my sketch if it helps (MySensors v2.2.0-Beta). It uses ALS, BMP180 and RGB leds.
    Working well with my nRF24 LNA+PA GW.

    #include <Arduino.h>
    #define MY_DEBUG
    #define MY_BAUD_RATE 9600
    
    // Mode Radio / Enable and select radio type attached
    #define MY_RADIO_NRF5_ESB
    #define MY_NRF5_ESB_PA_LEVEL NRF5_PA_MAX
    #define MY_NODE_ID 6
    #include "MySensors.h"
    #include <Wire.h>
    #include <Adafruit_BMP085.h>
    
    Adafruit_BMP085 bmp = Adafruit_BMP085();
    
    #define CHILD_ID_TEMP 0
    #define CHILD_ID_BARO  1
    #define CHILD_ID_ALS  2
    
    #define SLEEP_NODE true // True to activate Sleep Mode, but currently unsupported on esp8266
    unsigned long SLEEP_TIME = 120 * 1000; // Sleep time between reads (in milliseconds)
    
    #define RED_PIN 17
    #define GREEN_PIN 18
    #define BLUE_PIN 19
    
    #define COLOR_OFF     0
    #define COLOR_RED     1
    #define COLOR_GREEN   2
    #define COLOR_BLUE    4
    
    MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
    MyMessage msgBaro(CHILD_ID_BARO, V_PRESSURE);
    MyMessage msgForecast(CHILD_ID_BARO, V_FORECAST);
    MyMessage msgALS(CHILD_ID_ALS, V_LIGHT_LEVEL);
    
    void setColor (uint8_t c) {
      digitalWrite (RED_PIN, !(c & COLOR_RED));
      digitalWrite (GREEN_PIN, !(c & COLOR_GREEN));
      digitalWrite (BLUE_PIN, !(c & COLOR_BLUE));
    }
    
    void setup() {
      setColor (COLOR_RED);
      setColor (COLOR_GREEN);
      setColor (COLOR_BLUE);
      Wire.begin();
      pinMode (RED_PIN, OUTPUT);
      pinMode (GREEN_PIN, OUTPUT);
      pinMode (BLUE_PIN, OUTPUT);
      setColor (COLOR_RED);
      delay(250);
      setColor (COLOR_GREEN);
      delay(250);
      setColor (COLOR_BLUE);
      delay(250);
      setColor (COLOR_OFF);
    
      /* BMP180.  */
      if (!bmp.begin()) {
        Serial.println("Could not find a valid BMP085 sensor, check wiring!");
        setColor (COLOR_RED);
        while (1);
      }
    }
    
    void presentation()  {
      sendSketchInfo("nrf Sensor TAG", "1.0.0");
    
      // Sensor presentation to the GW
      present(CHILD_ID_TEMP, S_TEMP);
      present(CHILD_ID_BARO, S_BARO);
      present(CHILD_ID_ALS, S_LIGHT_LEVEL);
    }
    
    void AP3216_write(uint8_t regAddress, uint8_t value) {
      Wire.beginTransmission(0x1E); // I2C Address of AP3216 sensor is 0x1E
      Wire.write(regAddress);
      Wire.write(value);
      Wire.endTransmission();
    }
    
    uint8_t AP3216_read(uint8_t regAddress) {
      Wire.beginTransmission(0x1E); // I2C Address of AP3216 sensor is 0x1E
      Wire.write(regAddress);
      Wire.endTransmission();
      Wire.requestFrom(0x1E, 1, true);
      return Wire.read() & 0xFF;
    }
    
    
    uint16_t readALS (void)
    {
      /* System mode: ALS function once */
      AP3216_write (0x0, 0x5);
      delay (250);
      return ((uint16_t) AP3216_read (0xC) << 8) | AP3216_read (0xD);
    }
    
    void loop() {
      send(msgTemp.set(bmp.readTemperature(), 1));
      send(msgBaro.set(bmp.readPressure(), 1));
      send(msgForecast.set(bmp.readSealevelPressure(834.0), 1));  /* Change altitude here !   */
      send(msgALS.set(readALS(), 1));
    
      setColor (COLOR_BLUE);
      delay (250);
      setColor (COLOR_OFF);
    
      if (SLEEP_NODE)
        sleep(SLEEP_TIME);
      else
        delay (SLEEP_TIME);
    }
    

    You also need to change SDA/SCL pins by creating a new board from the Generic nRF51 (or modifying it)
    In variant.h:

    #define PIN_WIRE_SDA         (9u)
    #define PIN_WIRE_SCL         (10u)
    
    Hardware

  • 💬 Sensebender Micro mk2
    P Ptibu

    @scalz said:

    Is SAML Arduino compatible now?

    Not yet. but it is WIP
    https://github.com/arduino/arduino-builder/issues/176#issuecomment-269110984

    @Cliff-Karlsson said:

    Is there any site where you can upload the pcb+bom and have all the components (maybe not radio and pinheaders) soldered before they send the pcb?

    It is called PCBA service. dirtypcbs and itead have such services.
    Got price estimation from itead few weeks ago for this board: about 550$ / 10 boards, including PCD ~100$, stencil ~60$, components ~219$ and assembly ~150$)

    OpenHardware.io temperature sensebender samd humidity

  • nRF5 Multi Sensor Board (12-14€)
    P Ptibu

    I only tried stlink v2 which works pretty well.

    Hardware
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular