Navigation

    • Register
    • Login
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. Cliff Karlsson
    3. Best
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Best posts made by Cliff Karlsson

    • RE: My Slim 2AA Battery Node

      @m26872 I am fairly sure that all methods work in normal cases but nothing worked for me fore some reason ๐Ÿ™‚ .

      The only way I could get it to work was when I finaly put the chip in an Arduino Uno clone with 328p Dip(?) socket and connected an USBtiny ISP to the ISCP of that Uno. It took just a couple of seconds and then it was done :).

      I flashed like 6-7 ships right away with bootloader and blink-sketch just for fun. Biggest problem now is to get the damn chip in/out of the sockets without bending any legs. But I ordered a chip extractor to remedy that problem (in 4-6 weeks :()

      posted in My Project
      Cliff Karlsson
      Cliff Karlsson
    • RE: What is wrong with this sketch?

      ahh!!!, you where right. I powered the node using a mobile charger but had not connected the PIR to the same GND as the charger. Now it works.

      posted in Troubleshooting
      Cliff Karlsson
      Cliff Karlsson
    • RE: ๐Ÿ’ฌ Arduino Pro Mini Shield for RFM69(H)W

      Are there any more files for this board?

      posted in OpenHardware.io
      Cliff Karlsson
      Cliff Karlsson
    • Is it better to use RFM69HW/Nrf24L01 long-range on gateway?

      I have not quite figured out if there is any advantage to use the long range variants of radios on the gateway. If I for example use a Nrf24L01 long range with antenna, will I get stronger readings? or is the long range versions only good for sending data?

      posted in General Discussion
      Cliff Karlsson
      Cliff Karlsson
    • RE: 50mm x 50mm board with different powering options

      Thanks for the link. But I can barely solder regular components, it looks like I need to place some smd stuff on that board, I have seen crackheads on cops that have more stable hands than me.

      posted in My Project
      Cliff Karlsson
      Cliff Karlsson
    • RE: Energy Monitoring

      Sorry for spamming but I solved the problem. The Original sketch was fine. I removed the radio and resoldered it (RFM69W) And then everything was Ok. There must have been some bad connecton as the sketch sent 3x greeting message.

      posted in Troubleshooting
      Cliff Karlsson
      Cliff Karlsson
    • RE: ๐Ÿ’ฌ MySWeMosGWShield - WeMos Mini MySensors Gateway Shield

      Sometimes my own stupidity still amazes me. The pins of all my wemos where soldered at the oposite side as the ones in your examples. all the radios then got powered using 5v instead of 3.3v, not very suprising that the nrf radios got hot as h*ll and that nothing worked as it should.

      Suprisingly the RFM69 seams to have survived. I guess the smd nrf24 all are toast.

      Everything works perfekt now when I connected it correctly ๐Ÿ™‚

      posted in OpenHardware.io
      Cliff Karlsson
      Cliff Karlsson
    • RE: Help with script for controlling Wemo bulbs.

      @drock1985
      I have tried Ouimeaux but it was to slow for my liking. I have placed an arduino behind the a wallswitch that controls a wemo led that is alway powered. When I last tried Ouimeaux the reactiontime was around 5 seconds and my kids and wife would have flicked the switch 5-6 times before any reactions was seen.

      I then moved over to installing wemo manager + server on an android witch makes the reaction time go down to about 1-2 sec. But I must say that I would want the reaction time to be under 1 sec.

      posted in General Discussion
      Cliff Karlsson
      Cliff Karlsson
    • RE: My own board (50mm x 30mm)

      Is it possible to order the AC boards from your last picture?

      posted in My Project
      Cliff Karlsson
      Cliff Karlsson
    • RE: Help troubleshoting sketch

      Yes I have tried adding a sensor using the dev-branch and the # define My_Radio_RFM69 option

      posted in Troubleshooting
      Cliff Karlsson
      Cliff Karlsson
    • Ninja spheres for sale (Sweden)

      Ok sorry if this is not allowed and just remove this post. But I have three Ninja spheres that I got from kickstarter a while a go. There supposed to be some super home-automation devices with zigbee/wlan/bluetooth (check the homepage for exact specs). But as alot of kickstarter campaigns this one crashed and burned and no development is done anymore.

      So the hardware is all cool and working but the software is dead i would think. It runs Ubuntu core I think and you can connect through ssh to fiddle around. I used it in the beginning to control my wemo lights directly from the sphere by swiping ontop of it. homepage
      I know I will never be able to use them for anything productive but maybee someone here can make some use of them. Give me a bid for one or all of them. I am not expecting a fortune...

      posted in General Discussion
      Cliff Karlsson
      Cliff Karlsson
    • RE: My Slim 2AA Battery Node

      anyone care to write down the exact precedure of how to burn a new bootloader to the atmel chip? what files goes to what folders and so on.

      posted in My Project
      Cliff Karlsson
      Cliff Karlsson
    • Connecting grid-eye sensor

      I accidently ordered the wrong kind of sensor and got Grid-eye one wire instead of Grid-eye usb. The one I got have two RJ11-connectors and from what I understand uses onewire for communication. alt text
      Schematic

      Datasheet

      I tried to understand the schematic to determine if I could use the TPx connectors at the top to connect and found that TP6 is 1-wire out and TP1 looks like GND, but I do not understand where VCC should go.

      So my questions is
      1: can I connect it to arduino using onewire and the TPx connections, and how would I connect it in that case.
      2: Can I use a FTDI-adapter in some way to be able to connect it to a PC to use the windows-demo-software?

      It looks like you're supposed to use some kind of additional hardware or shield between the sensor and the arduino but is there some way to connect it directly?

      posted in Troubleshooting
      Cliff Karlsson
      Cliff Karlsson
    • People counter using VL53L1X help "decoding" existing code to arduino

      I stumbled upon this video that I think is really cool. I then found a forum thread on the ST website where an ST employee responded that he could send the code by email. After getting the code I realized that the code was made for some other system (STM32?). Could anyone look at the code and see if it is possible to port so it would be usable using an Arduino/ESP32/ESP8266 ?

      Code

      People Counting Using a Single ST Time-of-Flight Sensor โ€“ 02:11
      โ€” STMicroelectronics

      I think I found the code

      /**
        ******************************************************************************
        * File Name          : main.c
        * Description        : Main program body
        ******************************************************************************
        *
        * COPYRIGHT(c) 2017 STMicroelectronics
        *
        * Redistribution and use in source and binary forms, with or without modification,
        * are permitted provided that the following conditions are met:
        *   1. Redistributions of source code must retain the above copyright notice,
        *      this list of conditions and the following disclaimer.
        *   2. Redistributions in binary form must reproduce the above copyright notice,
        *      this list of conditions and the following disclaimer in the documentation
        *      and/or other materials provided with the distribution.
        *   3. Neither the name of STMicroelectronics nor the names of its contributors
        *      may be used to endorse or promote products derived from this software
        *      without specific prior written permission.
        *
        * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
        * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
        * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
        * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
        * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
        * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
        * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        *
        ******************************************************************************
        */
      	
      /* Includes ------------------------------------------------------------------*/
      #include "stm32xxx_hal.h"
      
      /* USER CODE BEGIN Includes */
      #include "main.h"
      #include "VL53L1X_API.h"
      #include "VL53l1X_calibration.h"
      #include "X-NUCLEO-53L1A1.h"
      /* USER CODE END Includes */
      /* Private variables ---------------------------------------------------------*/
      /* USER CODE BEGIN PV */
      /* Private variables ---------------------------------------------------------*/
      I2C_HandleTypeDef hi2c1;
      UART_HandleTypeDef huart2;
      VL53L1_Dev_t                   dev;
      int status = 0;
      volatile int IntCount;
      #define isInterrupt 1 /* If isInterrupt = 1 then device working in interrupt mode, else device working in polling mode */
      /* USER CODE END PV */
      
      /* Private function prototypes -----------------------------------------------*/
      /* USER CODE BEGIN PFP */
      /* Private function prototypes -----------------------------------------------*/
      int SystemClock_Config(void);
      static void MX_GPIO_Init(void);
      static int MX_USART2_UART_Init(void);
      static int MX_I2C1_Init(void);
      /* USER CODE END PFP */
      
      /* USER CODE BEGIN 0 */
      #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
      
      // People Counting defines
      #define NOBODY 0
      #define SOMEONE 1
      #define LEFT 0
      #define RIGHT 1
      
      #define DIST_THRESHOLD_MAX  1780
      
      
      PUTCHAR_PROTOTYPE
      {
      	HAL_UART_Transmit(&huart2, (uint8_t*)&ch, 1, 0xFFFF);
      	return ch;
      }
      
      void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
      {
      	if (GPIO_Pin==VL53L1X_INT_Pin)
      	{
      		IntCount++;
      	}
      }
      
      /* USER CODE END 0 */
      
      
      
      int ProcessPeopleCountingData(int16_t Distance, uint8_t zone) {
      
      	static char PeopleCountString[4];
          static int PathTrack[] = {0,0,0,0};
          static int PathTrackFillingSize = 1; // init this to 1 as we start from state where nobody is any of the zones
          static int LeftPreviousStatus = NOBODY;
          static int RightPreviousStatus = NOBODY;
          static int PeopleCount = 0;
      
          int CurrentZoneStatus = NOBODY;
          int AllZonesCurrentStatus = 0;
          int AnEventHasOccured = 0;
      
      	if (Distance < DIST_THRESHOLD_MAX) {
      		// Someone is in !
      		CurrentZoneStatus = SOMEONE;
      	}
      
      	// left zone
      	if (zone == LEFT) {
      
      		if (CurrentZoneStatus != LeftPreviousStatus) {
      			// event in left zone has occured
      			AnEventHasOccured = 1;
      
      			if (CurrentZoneStatus == SOMEONE) {
      				AllZonesCurrentStatus += 1;
      			}
      			// need to check right zone as well ...
      			if (RightPreviousStatus == SOMEONE) {
      				// event in left zone has occured
      				AllZonesCurrentStatus += 2;
      			}
      			// remember for next time
      			LeftPreviousStatus = CurrentZoneStatus;
      		}
      	}
      	// right zone
      	else {
      
      		if (CurrentZoneStatus != RightPreviousStatus) {
      
      			// event in left zone has occured
      			AnEventHasOccured = 1;
      			if (CurrentZoneStatus == SOMEONE) {
      				AllZonesCurrentStatus += 2;
      			}
      			// need to left right zone as well ...
      			if (LeftPreviousStatus == SOMEONE) {
      				// event in left zone has occured
      				AllZonesCurrentStatus += 1;
      			}
      			// remember for next time
      			RightPreviousStatus = CurrentZoneStatus;
      		}
      	}
      
      	// if an event has occured
      	if (AnEventHasOccured) {
      		if (PathTrackFillingSize < 4) {
      			PathTrackFillingSize ++;
      		}
      
      		// if nobody anywhere lets check if an exit or entry has happened
      		if ((LeftPreviousStatus == NOBODY) && (RightPreviousStatus == NOBODY)) {
      
      			// check exit or entry only if PathTrackFillingSize is 4 (for example 0 1 3 2) and last event is 0 (nobobdy anywhere)
      			if (PathTrackFillingSize == 4) {
      				// check exit or entry. no need to check PathTrack[0] == 0 , it is always the case
      
      				if ((PathTrack[1] == 1)  && (PathTrack[2] == 3) && (PathTrack[3] == 2)) {
      					// This an entry
      					PeopleCount ++;
                          sprintf(PeopleCountString, "%d", PeopleCount);
                          XNUCLEO53L1A1_SetDisplayString(PeopleCountString);
      
      				} else if ((PathTrack[1] == 2)  && (PathTrack[2] == 3) && (PathTrack[3] == 1)) {
      					// This an exit
      					PeopleCount --;
                          sprintf(PeopleCountString, "%d", PeopleCount);
                          XNUCLEO53L1A1_SetDisplayString(PeopleCountString);
      				}
      			}
      
      			PathTrackFillingSize = 1;
      		}
      		else {
      			// update PathTrack
      			// example of PathTrack update
      			// 0
      			// 0 1
      			// 0 1 3
      			// 0 1 3 1
      			// 0 1 3 3
      			// 0 1 3 2 ==> if next is 0 : check if exit
      			PathTrack[PathTrackFillingSize-1] = AllZonesCurrentStatus;
      		}
      	}
      
      	// output debug data to main host machine
      	return(PeopleCount);
      
      }
      
      int main(void)
      {
      	int8_t error;
          uint8_t byteData, sensorState=0;
          uint16_t wordData;
          uint16_t Distance;
          uint8_t RangeStatus;
          uint8_t dataReady;
          int center[2] = {167,231}; /* these are the spad center of the 2 8*16 zones */
          int Zone = 0;
          int PplCounter = 0;
          
          /* MCU Configuration----------------------------------------------------------*/
          
          /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
          HAL_Init();
          
          /* Configure the system clock */
          error = SystemClock_Config();
          
          /* Initialize all configured peripherals */
          MX_GPIO_Init();
          error += MX_USART2_UART_Init();
          error += MX_I2C1_Init();
          
          if (error != 0)
          {
              printf("Could not initialize the nucleo board\n");
              return -1;
          }
      
          XNUCLEO53L1A1_Init();
          dev.I2cHandle = &hi2c1;
          dev.I2cDevAddr = 0x52;
         
          status = XNUCLEO53L1A1_ResetId(XNUCLEO53L1A1_DEV_LEFT, 0); // Reset ToF sensor
          HAL_Delay(2);
          status = XNUCLEO53L1A1_ResetId(XNUCLEO53L1A1_DEV_CENTER, 0); // Reset ToF sensor
          HAL_Delay(2);
          status = XNUCLEO53L1A1_ResetId(XNUCLEO53L1A1_DEV_RIGHT, 0); // Reset ToF sensor
          HAL_Delay(2);
          status = XNUCLEO53L1A1_ResetId(XNUCLEO53L1A1_DEV_LEFT, 1); // Reset ToF sensor
          HAL_Delay(2);
          
          // Those basic I2C read functions can be used to check your own I2C functions */
          status = VL53L1_RdByte(&dev, 0x010F, &byteData);
          printf("VL53L1X Model_ID: %X\n", byteData);
          status = VL53L1_RdByte(&dev, 0x0110, &byteData);
          printf("VL53L1X Module_Type: %X\n", byteData);
          status = VL53L1_RdWord(&dev, 0x010F, &wordData);
          printf("VL53L1X: %X\n", wordData);
          while (sensorState == 0) {
              status = VL53L1X_BootState(dev, &sensorState);
              HAL_Delay(2);
          }
         
          printf("Chip booted\n");
          
          /* Init 4 digit display */
          XNUCLEO53L1A1_SetDisplayString("0");
      
          /* Initialize and configure the device according to people counting need */
          status = VL53L1X_SensorInit(dev);
          status += VL53L1X_SetDistanceMode(dev, 2); /* 1=short, 2=long */
          status += VL53L1X_SetTimingBudgetInMs(dev, 20); /* in ms possible values [20, 50, 100, 200, 500] */
          status += VL53L1X_SetInterMeasurementInMs(dev, 20); 
          status += VL53L1X_SetROI(dev, 8, 16); /* minimum ROI 4,4 */
          if (status != 0) {
              printf("Error in Initalisation or configuration of the device\n");
              return (-1);
          }
          
          printf("Start counting people  ...\n");
          status = VL53L1X_StartRanging(dev);   /* This function has to be called to enable the ranging */
          
          while(1) { /* read and display data */
              while (dataReady == 0) {
      			status = VL53L1X_CheckForDataReady(dev, &dataReady);
      			HAL_Delay(2);
              }
          
      		dataReady = 0;
      		status += VL53L1X_GetRangeStatus(dev, &RangeStatus);
      		status += VL53L1X_GetDistance(dev, &Distance);
      		status += VL53L1X_ClearInterrupt(dev); /* clear interrupt has to be called to enable next interrupt*/
      		if (status != 0) {
      			printf("Error in operating the device\n");
      			return (-1);
      		}
      
      		// wait a couple of milliseconds to ensure the setting of the new ROI center for the next ranging is effective
      		// otherwise there is a risk that this setting is applied to current ranging (even if timing has expired, the intermeasurement
      		// may expire immediately after.
      		HAL_Delay(10);
      		status = VL53L1X_SetROICenter(dev, center[Zone]);
      		if (status != 0) {
      			printf("Error in chaning the center of the ROI\n");
      			return (-1);
      		}
      
      		// inject the new ranged distance in the people counting algorithm
      		PplCounter = ProcessPeopleCountingData(Distance, Zone);
      
      		Zone++;
      		Zone = Zone%2;
      
      		printf("%d, %d, %d, %d\n", Zone, RangeStatus, Distance, PplCounter);
          }
      }
      
      /** System Clock Configuration
      */
      #ifdef STM32F401xE
      
      int SystemClock_Config(void)
      {
      
          RCC_OscInitTypeDef RCC_OscInitStruct;
          RCC_ClkInitTypeDef RCC_ClkInitStruct;
        
          /**Configure the main internal regulator output voltage 
          */
          __HAL_RCC_PWR_CLK_ENABLE();
        
          __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);
        
          /**Initializes the CPU, AHB and APB busses clocks 
          */
          RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
          RCC_OscInitStruct.HSIState = RCC_HSI_ON;
          RCC_OscInitStruct.HSICalibrationValue = 16;
          RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
          RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
          RCC_OscInitStruct.PLL.PLLM = 16;
          RCC_OscInitStruct.PLL.PLLN = 336;
          RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4;
          RCC_OscInitStruct.PLL.PLLQ = 7;
          if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
          {
              return -1;
          }
        
          /**Initializes the CPU, AHB and APB busses clocks 
          */
          RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                                      |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
          RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
          RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
          RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
          RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
        
          if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
          {
              return -1;
          }
        
          /**Configure the Systick interrupt time 
          */
          HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
        
          /**Configure the Systick 
          */
          HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
        
          /* SysTick_IRQn interrupt configuration */
          HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
        
          return 0;
      }
      #endif
      
      
      #ifdef STM32F401xE
      
      /* I2C1 init function */
      static int MX_I2C1_Init(void)
      {
          hi2c1.Instance = I2C1;
          hi2c1.Init.ClockSpeed = 100000;
          hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
          hi2c1.Init.OwnAddress1 = 0;
          hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
          hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
          hi2c1.Init.OwnAddress2 = 0;
          hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
          hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
          if (HAL_I2C_Init(&hi2c1) != HAL_OK)
          {
            return -1;
          }
          
          return 0;
      
      }
      #endif
      
      /* USART2 init function */
      int MX_USART2_UART_Init(void)
      {
      
          huart2.Instance = USART2;
          huart2.Init.BaudRate = 460800;
          huart2.Init.WordLength = UART_WORDLENGTH_8B;
          huart2.Init.StopBits = UART_STOPBITS_1;
          huart2.Init.Parity = UART_PARITY_NONE;
          huart2.Init.Mode = UART_MODE_TX_RX;
          huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
          huart2.Init.OverSampling = UART_OVERSAMPLING_16;
          if (HAL_UART_Init(&huart2) != HAL_OK)
          {
              return (-1);
          }
          return 0;
      
      }
      
      /** Configure pins as 
              * Analog 
              * Input 
              * Output
              * EVENT_OUT
              * EXTI
      */
      static void MX_GPIO_Init(void)
      {
      
          GPIO_InitTypeDef GPIO_InitStruct;
         
          /* GPIO Ports Clock Enable */
          __HAL_RCC_GPIOC_CLK_ENABLE();
          __HAL_RCC_GPIOH_CLK_ENABLE();
          __HAL_RCC_GPIOA_CLK_ENABLE();
          __HAL_RCC_GPIOB_CLK_ENABLE();
         
          /*Configure GPIO pin Output Level */
          HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET);
         
          /*Configure GPIO pin : B1_Pin */
          GPIO_InitStruct.Pin = B1_Pin;
          GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
          GPIO_InitStruct.Pull = GPIO_NOPULL;
          HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct);
         
          /*Configure GPIO pin : VL53L1X_INT_Pin */
          GPIO_InitStruct.Pin = VL53L1X_INT_Pin;
          GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
          GPIO_InitStruct.Pull = GPIO_PULLUP;
          HAL_GPIO_Init(VL53L1X_INT_GPIO_Port, &GPIO_InitStruct);
         
          /*Configure GPIO pin : LD2_Pin */
          GPIO_InitStruct.Pin = LD2_Pin;
          GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
          GPIO_InitStruct.Pull = GPIO_NOPULL;
          GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
          HAL_GPIO_Init(LD2_GPIO_Port, &GPIO_InitStruct);
         
          /* EXTI interrupt init*/
          HAL_NVIC_SetPriority(EXTI4_IRQn, 0, 0);
          HAL_NVIC_EnableIRQ(EXTI4_IRQn);
      
      }
      
      
      /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
      
      
      posted in General Discussion
      Cliff Karlsson
      Cliff Karlsson
    • RE: My Slim 2AA Battery Node

      Ok, finaly succeded in burning the bootloader. Now comes next part. Fuses and lockbits, I have no idea what this means but is this what I need to do?

      avrdude -C ../etc/avrdude.conf -c usbasp -B5 -p ATmega328P -U lfuse:w:0x62:m -U hfuse:w:0xDE:m -U efuse:w:0x07:m -U lock:w:0x2F:m
      
      posted in My Project
      Cliff Karlsson
      Cliff Karlsson
    • RE: Safe In-Wall AC to DC Transformers??

      @cygnus said:

      HLK-PM01

      +1

      posted in Hardware
      Cliff Karlsson
      Cliff Karlsson
    • RE: Clean looking sensor node

      I really like the pcbยดs you are using @NeverDie, is it possible to buy them anywhere?

      posted in Enclosures / 3D Printing
      Cliff Karlsson
      Cliff Karlsson
    • RE: Mi-Light controller for Mysensors

      Great news @Nca78

      posted in My Project
      Cliff Karlsson
      Cliff Karlsson
    • RE: Problems getting a RFM69HW gateway to work in domoticz

      Ahhhhhhh!!!!!!!!!!!!, thank you!!!!!! It finally works. 38400 was the other selectable baudrate specified in domoticz and it started working rightaway after selecting the right settings.

      posted in Domoticz
      Cliff Karlsson
      Cliff Karlsson
    • RE: ATMega32u4 + RFM69 + MySensors = Working!?

      Just a question, why do you use the 32u4 ? from my newbie perspective when comparing it to the mini pro it costs 2-3 times more but have the advantage of adding the usb function.

      But if I want also usb I could buy the nano witch has more GPIOs and is around 50% of the price.

      Or have I missed something?

      posted in Hardware
      Cliff Karlsson
      Cliff Karlsson