├── Board_for_XIAO_LoRa ├── DIO0_DIO1_DIO2_Wiring.jpg ├── DIO0_Only_Wiring.jpg ├── Examples_for_XIAO_RP2040 │ ├── 13_GPS_Checker_With_Display │ │ └── 13_GPS_Checker_With_Display.ino │ ├── 15_GPS_Tracker_Transmitter │ │ ├── 15_GPS_Tracker_Transmitter.ino │ │ └── Settings.h │ ├── 23_Neopixel_Blink │ │ └── 23_Neopixel_Blink.ino │ ├── 3_LoRa_Transmitter │ │ └── 3_LoRa_Transmitter.ino │ └── 9_GPS_Echo_Serial1 │ │ └── 9_GPS_Echo_Serial1.ino ├── Examples_for_XIAO_SAMD21 │ ├── 10_GPS_Echo_Sercom2 │ │ └── 10_GPS_Echo_Sercom2.ino │ ├── 11_I2C_Scanner │ │ └── 11_I2C_Scanner.ino │ ├── 12_SSD1306_SH1106_OLED_Checker │ │ └── 12_SSD1306_SH1106_OLED_Checker.ino │ ├── 13_GPS_Checker_With_Display │ │ └── 13_GPS_Checker_With_Display.ino │ ├── 14_Battery_Voltage_Read │ │ └── 14_Battery_Voltage_Read.ino │ ├── 15_GPS_Tracker_Transmitter │ │ ├── 15_GPS_Tracker_Transmitter.ino │ │ └── Settings.h │ ├── 16_GPS_Tracker_Receiver_With_Display_and_GPS │ │ ├── 16_GPS_Tracker_Receiver_With_Display_and_GPS.ino │ │ └── Settings.h │ ├── 17_BME280_Sensor_Transmitter │ │ ├── 17_BME280_Sensor_Transmitter.ino │ │ └── Settings.h │ ├── 18_BME280_Sensor_Receiver │ │ ├── 18_BME280_Sensor_Receiver.ino │ │ └── Settings.h │ ├── 1_LED_Blink │ │ └── 1_LED_Blink.ino │ ├── 21_I2C_20x4_LCD_Test │ │ ├── 21_I2C_20x4_LCD_Test.ino │ │ └── I2C_Scanner.h │ ├── 22_MPR121_3X4_Keypad_Test │ │ └── 22_MPR121_3X4_Keypad_Test.ino │ ├── 2_LoRa_Register_Test │ │ └── 2_LoRa_Register_Test.ino │ ├── 3_LoRa_Test_Transmitter │ │ └── 3_LoRa_Test_Transmitter.ino │ ├── 3_LoRa_Transmitter │ │ └── 3_LoRa_Transmitter.ino │ ├── 4_LoRa_Receiver │ │ └── 4_LoRa_Receiver.ino │ ├── 4_LoRa_Test_Receiver │ │ └── 4_LoRa_Test_Receiver.ino │ ├── 5_WakeUpOnExternalInterrupt │ │ ├── 5_WakeUpOnExternalInterrupt.ino │ │ └── Settings.h │ ├── 6_RTCAlarm_Sleep_Wakeup │ │ └── 6_RTCAlarm_Sleep_Wakeup.ino │ ├── 7_LoRa_Transmitter_Sleep_Switch_Wakeup │ │ ├── 7_LoRa_Transmitter_Sleep_Switch_Wakeup.ino │ │ └── Settings.h │ ├── 8_LoRa_Transmitter_Sleep_RTC_Wakeup │ │ ├── 8_LoRa_Transmitter_Sleep_RTC_Wakeup.ino │ │ └── Settings.h │ ├── 9_GPS_Echo_Serial1 │ │ └── 9_GPS_Echo_Serial1.ino │ ├── TTN_LoRaWAN │ │ └── 24_LMIC_low_power_OTAA_XIAO_SAMD21 │ │ │ └── 24_LMIC_low_power_OTAA_XIAO_SAMD21.ino │ └── XIAO_with_LoRa_Portable3.jpg ├── How to download Tindie product documentation.pdf ├── PCB_BOTTOM.jpg ├── PCB_TOP.jpg ├── Parts List.xls ├── Readme.md ├── StuartsProjects_XIAO_LoRa_Board_PCB_Bottom.pdf ├── StuartsProjects_XIAO_LoRa_Board_PCB_Top.pdf ├── StuartsProjects_XIAO_LoRa_Board_Schematic.pdf ├── XIAO RP2040 Overview.url ├── XIAO SAMD21 Getting Started.url ├── XIAO-RP2040-Pinout.png └── XIAO-SAMD21-Pinout.png ├── Board_for_XIAO_LoRa_V2 ├── 020123_11.jpg ├── 10_GPS_Location_Checker_With_Display │ └── 10_GPS_Location_Checker_With_Display.ino ├── 11_BME280_Sensor_Test │ └── 11_BME280_Sensor_Test.ino ├── 12_Wakeup_On_External_Interrupt │ └── 12_Wakeup_On_External_Interrupt.ino ├── 13_I2C_Scanner │ └── 13_I2C_Scanner.ino ├── 1_LED_Blink │ └── 1_LED_Blink.ino ├── 20_GPS_Tracker_Transmitter │ └── 20_GPS_Tracker_Transmitter.ino ├── 21_GPS_Tracker_Receiver_With_Display │ └── 21_GPS_Tracker_Receiver_With_Display.ino ├── 22_BME280_Sensor_Transmitter │ └── 22_BME280_Sensor_Transmitter.ino ├── 23_BME280_Sensor_Receiver_With_Display │ └── 23_BME280_Sensor_Receiver_With_Display.ino ├── 2_RTC_Alarm_Sleep_Wakeup │ └── 2_RTC_Alarm_Sleep_Wakeup.ino ├── 30_FRAM_Memory_Clear │ ├── 30_FRAM_Memory_Clear.ino │ ├── FRAM_FM24CL64.h │ ├── FRAM_MB85RC16PNF.h │ └── I2C_Scanner.h ├── 3_Battery_Voltage_Read │ └── 3_Battery_Voltage_Read.ino ├── 3_Battery_Voltage_Read_Float │ └── 3_Battery_Voltage_Read_Float.ino ├── 4_FRAM_Memory_Test │ ├── 4_FRAM_Memory_Test.ino │ ├── FRAM_FM24CL64.h │ └── FRAM_MB85RC16PNF.h ├── 5_LoRa_Register_Test │ └── 5_LoRa_Register_Test.ino ├── 6_LoRa_Transmitter │ └── 6_LoRa_Transmitter.ino ├── 7_LoRa_Receiver │ └── 7_LoRa_Receiver.ino ├── 8_GPS_Echo │ └── 8_GPS_Echo.ino ├── 9_SSD1306_SH1106_OLED_Checker │ └── 9_SSD1306_SH1106_OLED_Checker.ino ├── Board_for_XIAO_LoRa_V2_Build.pdf ├── Board_for_XIAO_LoRa_V2_PCB_BOTTOM.pdf ├── Board_for_XIAO_LoRa_V2_PCB_TOP.pdf ├── Board_for_XIAO_LoRa_V2_Schematic.pdf ├── How to download Tindie product documentation.pdf ├── Parts List Board_for_XIAO_LoRa_V2.pdf ├── TTN_LoRaWAN │ ├── 25_LMIC_low_power_OTAA_XIAO_SAMD21_FRAM │ │ ├── 25_LMIC_low_power_OTAA_XIAO_SAMD21_FRAM.ino │ │ ├── FRAM_FM24CL64.h │ │ ├── FRAM_MB85RC16PNF.h │ │ └── memory.h │ ├── Arduino IDE Configuration.pdf │ ├── Board_for_XIAO_LoRa_V2_TTN_Node_Build.pdf │ └── Important - Please Read.pdf └── Using GPSs with Power down capability.pdf ├── Breadboard Friendly DRF1278 Board ├── DRF1278F.jpg ├── DRF1278_Board_SMA.jpg ├── DRF1278_Board_Wire.jpg ├── Eagle │ ├── PCB_Socket.brd │ └── PCB_Socket.sch ├── How to download Tindie product documentation.pdf ├── Pin Layout.jpg └── ReadMe.md ├── Breadboard Friendly DRF1278 LoRa Module ├── DRF1278F_Module.jpg ├── DRF1278_Board_SMA.jpg ├── Eagle │ ├── PCB_Socket.brd │ └── PCB_Socket.sch ├── How to download Tindie product documentation.pdf ├── Pin Layout.jpg └── ReadMe.md ├── Breadboard Friendly Dorji SX1262 SX1268 Board ├── Dorji_DRF1262_DRF1268_BBF_Board.jpg ├── Dorji_SX1262_SX1268_Schematic.pdf ├── Eagle │ ├── PCB_Socket.brd │ └── PCB_Socket.sch ├── How to download Tindie product documentation.pdf └── ReadMe.md ├── Breadboard Friendly EbyteE28 Board ├── Description.md ├── E28_BBF.jpg ├── E28_BBF_Board.jpg ├── E28_Mikrobus.pdf ├── E28_Mikrobus_PCB.pdf ├── E28_Mikrobus_Schematic.pdf ├── E28_Mounting.jpg ├── Eagle │ ├── PCB_Socket.brd │ └── PCB_Socket.sch ├── How to download Tindie product documentation.pdf ├── Product Description.doc └── ReadMe.md ├── Breadboard Friendly NiceRF SX1262 Board ├── Eagle - Copy │ ├── PCB_Socket.brd │ └── PCB_Socket.sch ├── Eagle │ ├── PCB_Socket.brd │ └── PCB_Socket.sch ├── How to download Tindie product documentation.pdf ├── NiceRF_SX1262_BBF_Board.jpg ├── NiceRF_SX1262_BBF_Board_Schematic.jpg ├── NiceRF_SX1262_Schematic.pdf └── ReadMe.md ├── Breadboard Friendly NiceRF SX1280 Board ├── Eagle │ ├── PCB_Socket.brd │ └── PCB_Socket.sch ├── How to download Tindie product documentation.pdf ├── NiceRF_SX1280_BBF_Board_Schematic.jpg ├── NiceRF_SX1280_Schematic.pdf ├── ReadMe.md └── SX1280_BBF_Board.jpg ├── Breadboard Friendly RFM95 RFM96 RFM98 Board ├── Hope_RFM9X_BBF_Board.jpg ├── Hope_RFM9X_BBF_Board.pdf ├── Hope_RFM9X_BBF_Board_Schematic.jpg ├── How to download Tindie product documentation.pdf ├── Product Description.pdf ├── ReadMe.md └── examples │ ├── RFM9x_LoRa_Receiver │ └── RFM9x_LoRa_Receiver.ino │ └── RFM9x_LoRa_Transmitter │ └── RFM9x_LoRa_Transmitter.ino ├── Brompton ├── Modified_Gline.jpg ├── OmniWheel.jpg ├── eBrompton Build.pdf └── eBrompton Tools.pdf ├── CycleAlarm ├── 1_Blink_and_Buzz │ └── 1_Blink_and_Buzz.ino ├── 2_Battery_Voltage_Read_Test │ └── 2_Battery_Voltage_Read_Test.ino ├── 3_LoRa_Transmitter │ └── 3_LoRa_Transmitter.ino ├── 4_LoRa_Receiver │ └── 4_LoRa_Receiver.ino ├── 5_Alarm_Transmitter │ └── 5_Alarm_Transmitter.ino ├── 6_Alarm_Receiver │ └── 6_Alarm_Receiver.ino ├── 7_Alarm_Simulator_Transmitter │ └── 7_Alarm_Simulator_Transmitter.ino ├── 8_Lilygo_TBeam_LoRa_Receiver │ └── 8_Lilygo_TBeam_LoRa_Receiver.ino ├── How to download Tindie product documentation.pdf ├── MicroControllerPCB_Bottom.pdf ├── MicroControllerPCB_Top.pdf ├── MicroControllerSchematic.pdf └── Readme.md ├── Easy Pro Mini ├── EMPM1.jpg ├── EMPM12.jpg ├── EMPM13.jpg ├── Easy Mikrobus Pro Mini Full Parts List.xls ├── Easy Pro Mini - Build.pdf ├── Easy Pro Mini - Kit List.xls ├── Easy Pro Mini PCB.pdf ├── Easy Pro Mini Schematic.pdf ├── How to download Tindie product documentation.pdf ├── Pictures │ ├── Breadboard_Friendly_Pinout.jpg │ ├── EMPM10.jpg │ ├── EMPM11.jpg │ ├── EMPM2.jpg │ ├── EMPM3.jpg │ ├── EMPM4.jpg │ ├── EMPM5.jpg │ ├── EMPM6.jpg │ ├── EMPM7.jpg │ ├── EMPM8.jpg │ ├── EMPM9.jpg │ ├── Easy Connector Pinout.jpg │ ├── Easy_GPS_Tracker.jpg │ ├── Easy_Remote_Control.jpg │ ├── Easy_Sensor.jpg │ ├── LoRa_Breadboard_Friendly_Modules.jpg │ ├── Pro Mini Comparison.jpg │ └── ProMini_Comparison.jpg └── Product Description.pdf ├── EasyBuildESP32 ├── EasyBuildESP32 PCB.jpg ├── EasyBuildESP32_PCB.pdf ├── EasyBuildESP32_Schematic.pdf ├── Examples │ ├── 10_I2C_FRAM_Memory_Test │ │ ├── 10_I2C_FRAM_Memory_Test.ino │ │ └── I2C_Scanner.h │ ├── 11_MPR121_3X4_Keypad_Test │ │ └── 11_MPR121_3X4_Keypad_Test.ino │ ├── 12_VIN_Voltage_Read_Test │ │ └── 12_VIN_Voltage_Read_Test.ino │ ├── 13_GPS_Echo │ │ └── 13_GPS_Echo.ino │ ├── 14_GPS_Checker_With_Display │ │ └── 14_GPS_Checker_With_Display.ino │ ├── 15_Switch_Test │ │ ├── 15_Switch_Test.ino │ │ └── Settings.h │ ├── 16_LoRa_Packet_Logger_With_Display │ │ ├── 16_LoRa_Packet_Logger_With_Display.ino │ │ └── Settings.h │ ├── 17_MMC_SDfile_Transfer_Transmitter │ │ ├── $50SATL.JPG │ │ ├── $50SATS.JPG │ │ ├── $50SATT.JPG │ │ ├── 17_MMC_SDfile_Transfer_Transmitter.ino │ │ ├── MMClibrary.h │ │ ├── MMCtransfer.h │ │ ├── Settings.h │ │ └── testfile.txt │ ├── 18_MMC_SDfile_Transfer_Receiver │ │ ├── 18_MMC_SDfile_Transfer_Receiver.ino │ │ ├── MMClibrary.h │ │ ├── MMCtransfer.h │ │ └── Settings.h │ ├── 19_ArduCAM_Capture2MMC │ │ └── 19_ArduCAM_Capture2MMC.ino │ ├── 1_LED_Blink │ │ └── 1_LED_Blink.ino │ ├── 20_ArduCAM_Image_Transfer │ │ ├── 20_ArduCAM_Image_Transfer.ino │ │ ├── MMClibrary.h │ │ ├── MMCtransfer.h │ │ └── Settings.h │ ├── 2_Neopixel_Blink │ │ └── 2_Neopixel_Blink.ino │ ├── 3_LoRa_Register_Test │ │ └── 3_LoRa_Register_Test.ino │ ├── 4_LoRa_Transmitter │ │ ├── 4_LoRa_Transmitter.ino │ │ └── Settings.h │ ├── 5_LoRa_Receiver │ │ ├── 5_LoRa_Receiver.ino │ │ └── Settings.h │ ├── 6_MMC_SD_Card_Test │ │ └── 6_MMC_SD_Card_Test.ino │ ├── 7_SSD1306_SH1106_OLED_Checker │ │ └── 7_SSD1306_SH1106_OLED_Checker.ino │ ├── 8_I2C_Scanner │ │ └── 8_I2C_Scanner.ino │ └── 9_BME280_Test │ │ └── 9_BME280_Test.ino ├── Gerber │ ├── NodeMCUShieldBasicWithLoRa.GBL │ ├── NodeMCUShieldBasicWithLoRa.GBO │ ├── NodeMCUShieldBasicWithLoRa.GBP │ ├── NodeMCUShieldBasicWithLoRa.GBS │ ├── NodeMCUShieldBasicWithLoRa.GML │ ├── NodeMCUShieldBasicWithLoRa.GTL │ ├── NodeMCUShieldBasicWithLoRa.GTO │ ├── NodeMCUShieldBasicWithLoRa.GTP │ ├── NodeMCUShieldBasicWithLoRa.GTS │ ├── NodeMCUShieldBasicWithLoRa.TXT │ ├── NodeMCUShieldBasicWithLoRa.do │ ├── NodeMCUShieldBasicWithLoRa.dri │ ├── NodeMCUShieldBasicWithLoRa.gpi │ └── NodeMCUShieldBasicWithLoRa.zip ├── How to download Tindie product documentation.pdf ├── ReadMe.md └── images │ ├── EasyBuildESP32_Shield_1.jpg │ ├── NodeMCU_Shield_10.JPG │ ├── NodeMCU_Shield_11.JPG │ ├── NodeMCU_Shield_2.jpg │ ├── NodeMCU_Shield_3.jpg │ ├── NodeMCU_Shield_4.jpg │ ├── NodeMCU_Shield_5.jpg │ ├── NodeMCU_Shield_7.jpg │ ├── NodeMCU_Shield_8.jpg │ └── WhiteBlock.JPG ├── HAB2 Tracker RFM9x ├── Documentation.url ├── Examples │ ├── Balloon_Tracker_Receiver │ │ ├── AFSKRTTY2_DL-Fldigi_Settings.jpg │ │ ├── Balloon_Tracker_Receiver.ino │ │ └── Settings.h │ ├── Balloon_Tracker_Transmitter_HAB2 │ │ ├── Balloon_Tracker_Transmitter_HAB2.ino │ │ └── Settings.h │ ├── GPS_Echo │ │ └── GPS_Echo.ino │ ├── LED_Blink │ │ └── LED_Blink.ino │ └── Register_Test │ │ └── Register_Test.ino ├── HAB2 Balloon Tracker PCB.jpg ├── HAB2 Complete.jpg ├── HAB2 Minimum Parts Tracker Build.pdf ├── HAB2 Tracker RFM9x 150818 PCB.pdf ├── HAB2 Tracker RFM9x Schematic.pdf ├── HAB2.url ├── How to download Tindie product documentation.pdf └── Readme.md ├── Handheld_XIAO_LoRa_Tranceiver ├── Examples for XIAO RP2040 │ ├── 13_GPS_Checker_With_Display │ │ └── 13_GPS_Checker_With_Display.ino │ ├── 15_GPS_Tracker_Transmitter │ │ ├── 15_GPS_Tracker_Transmitter.ino │ │ └── Settings.h │ ├── 16_GPS_Tracker_Receiver_With_Display_and_GPS │ │ ├── 16_GPS_Tracker_Receiver_With_Display_and_GPS.ino │ │ └── Settings.h │ ├── 1_LED_Blink │ │ └── 1_LED_Blink.ino │ ├── 20_LoRa_SD_Packet_Logger_OLED │ │ ├── 20_LoRa_SD_Packet_Logger_OLED.ino │ │ ├── SD_Logger_Library.h │ │ └── Settings.h │ ├── 23_Neopixel_Blink │ │ └── 23_Neopixel_Blink.ino │ ├── 3_LoRa_Transmitter │ │ └── 3_LoRa_Transmitter.ino │ ├── 4_LoRa_Receiver │ │ └── 4_LoRa_Receiver.ino │ └── 9_GPS_Echo_Serial1 │ │ └── 9_GPS_Echo_Serial1.ino ├── Examples for XIAO SAMD21 │ ├── 10_GPS_Echo_Sercom2 │ │ └── 10_GPS_Echo_Sercom2.ino │ ├── 11_I2C_Scanner │ │ └── 11_I2C_Scanner.ino │ ├── 12_SSD1306_SH1106_OLED_Checker │ │ └── 12_SSD1306_SH1106_OLED_Checker.ino │ ├── 13_GPS_Checker_With_Display │ │ └── 13_GPS_Checker_With_Display.ino │ ├── 14_Battery_Voltage_Read │ │ └── 14_Battery_Voltage_Read.ino │ ├── 15_GPS_Tracker_Transmitter │ │ ├── 15_GPS_Tracker_Transmitter.ino │ │ └── Settings.h │ ├── 16_GPS_Tracker_Receiver_With_Display_and_GPS │ │ ├── 16_GPS_Tracker_Receiver_With_Display_and_GPS.ino │ │ └── Settings.h │ ├── 17_BME280_Sensor_Transmitter │ │ ├── 17_BME280_Sensor_Transmitter.ino │ │ └── Settings.h │ ├── 18_BME280_Sensor_Receiver │ │ ├── 18_BME280_Sensor_Receiver.ino │ │ └── Settings.h │ ├── 19_SD_Card_Test │ │ └── 19_SD_Card_Test.ino │ ├── 1_LED_Blink │ │ └── 1_LED_Blink.ino │ ├── 20_LoRa_SD_Packet_Logger_OLED │ │ ├── 20_LoRa_SD_Packet_Logger_OLED.ino │ │ ├── SD_Logger_Library.h │ │ └── Settings.h │ ├── 21_I2C_20x4_LCD_Test │ │ ├── 21_I2C_20x4_LCD_Test.ino │ │ └── I2C_Scanner.h │ ├── 22_MPR121_3X4_Keypad_Test │ │ └── 22_MPR121_3X4_Keypad_Test.ino │ ├── 2_LoRa_Register_Test │ │ └── 2_LoRa_Register_Test.ino │ ├── 3_LoRa_Transmitter │ │ └── 3_LoRa_Transmitter.ino │ ├── 4_LoRa_Receiver │ │ └── 4_LoRa_Receiver.ino │ ├── 5_WakeUpOnExternalInterrupt │ │ ├── 5_WakeUpOnExternalInterrupt.ino │ │ └── Settings.h │ ├── 6_RTCAlarm_Sleep_Wakeup │ │ └── 6_RTCAlarm_Sleep_Wakeup.ino │ ├── 7_LoRa_Transmitter_Sleep_Switch_Wakeup │ │ ├── 7_LoRa_Transmitter_Sleep_Switch_Wakeup.ino │ │ └── Settings.h │ ├── 8_LoRa_Transmitter_Sleep_RTC_Wakeup │ │ ├── 8_LoRa_Transmitter_Sleep_RTC_Wakeup.ino │ │ └── Settings.h │ └── 9_GPS_Echo_Serial1 │ │ └── 9_GPS_Echo_Serial1.ino ├── Handheld_XIAO_LoRa_Tranceiver_PCB.jpg ├── Handheld_XIAO_LoRa_Tranceiver_PCB.pdf ├── Handheld_XIAO_LoRa_Tranceiver_Schematic.pdf ├── How to download Tindie product documentation.pdf ├── Readme.md ├── XIAO RP2040 Overview.url ├── XIAO SAMD21 Getting Started.url ├── XIAO-RP2040-Pinout.png ├── XIAO-SAMD21-Pinout.png ├── XIAO_with_LoRa_Portable1.jpg ├── XIAO_with_LoRa_Portable2.jpg ├── XIAO_with_LoRa_Portable3.jpg ├── XIAO_with_LoRa_Portable5.jpg ├── XIAO_with_LoRa_Portable6A.jpg └── XIAO_with_LoRa_Portable6B.jpg ├── L70 L76 GPS Breakout ├── Build Instructions.pdf ├── How to download Tindie product documentation.pdf ├── L70_L76_Breakout-_020819_Schematic.pdf ├── L70_L76_Breakout_PCB.pdf ├── L70_L76_Breakout_Parts_List.csv ├── L70_L76_Breakout_Schematic.pdf ├── L70_L76_GPS_Breakout.jpg ├── L70_L76_GPS_Ceramic_Antenna.jpg ├── L70_L76_GPS_PCB.jpg └── ReadMe.md ├── L80 L86 GPS Breakout ├── Build Instructions.pdf ├── How to download Tindie product documentation.pdf ├── L80_L86 PCB.jpg ├── L80_L86_Breakout.jpg ├── L80_L86_PCB.jpg ├── L80_L86_PCB_Battery.jpg ├── Parts List.csv ├── Quectel L80 L86 Breakout PCB.pdf ├── Quectel L80 L86 Breakout Schematic.pdf └── ReadMe.md ├── Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023 ├── 071023_1.jpg ├── 1_LED_Blink │ └── 1_LED_Blink.ino ├── 20_Read_Battery_Voltage_and_Calibrate │ └── 20_Read_Battery_Voltage_and_Calibrate.ino ├── 21_GPS_Echo │ └── 21_GPS_Echo.ino ├── 233_SDfile_Transfer_Transmitter │ ├── 233_SDfile_Transfer_Transmitter.ino │ └── DTSettings.h ├── 239_StuartCAM_LoRa_Receiver │ ├── 239_StuartCAM_LoRa_Receiver.ino │ └── Settings.h ├── 290922_10.jpg ├── 290922_11.jpg ├── 290922_12.jpg ├── 290922_2.jpg ├── 290922_3.jpg ├── 290922_4.jpg ├── 290922_5.jpg ├── 290922_6.jpg ├── 290922_7.jpg ├── 2_ESP32CAM_DeepSleep_Test │ └── 2_ESP32CAM_DeepSleep_Test.ino ├── 3_ESP32CAM_Transmit_Picture │ ├── 3_ESP32CAM_Transmit_Picture.ino │ └── Settings.h ├── 4_ESP32CAM_Receive_Picture │ ├── 4_ESP32CAM_Receive_Picture.ino │ └── Settings.h ├── 5_ESP32CAM_PCFileTransfer_Test │ ├── 5_ESP32CAM_PCFileTransfer_Test.ino │ └── YModemArray.h ├── 6_ESP32CAM_Receive_Picture_PCTransfer │ ├── 6_ESP32CAM_Receive_Picture_PCTransfer.ino │ ├── Settings.h │ └── YModemArray.h ├── 7_LoRa_Test_Transmitter_SX1278 │ └── 7_LoRa_Test_Transmitter_SX1278.ino ├── ESP32CAM Long Range Wireless Adapter PCB Bottom.pdf ├── ESP32CAM Long Range Wireless Adapter PCB Top.pdf ├── ESP32CAM Long Range Wireless Adapter Schematic.pdf ├── ESP32CAM_26.jpg ├── ESP32CAM_GPIO4_Transistor.jpg ├── Readme.md └── To Test │ └── 240_StuartCAM_ESP32CAM_LoRa_Transmitter │ ├── 240_StuartCAM_ESP32CAM_LoRa_Transmitter.ino │ └── Settings.h ├── Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922 ├── 1_LED_Blink │ └── 1_LED_Blink.ino ├── 290922_1.jpg ├── 290922_10.jpg ├── 290922_11.jpg ├── 290922_12.jpg ├── 290922_2.jpg ├── 290922_3.jpg ├── 290922_4.jpg ├── 290922_5.jpg ├── 290922_6.jpg ├── 290922_7.jpg ├── 2_ESP32CAM_DeepSleep_Test │ └── 2_ESP32CAM_DeepSleep_Test.ino ├── 3_ESP32CAM_Transmit_Picture │ ├── 3_ESP32CAM_Transmit_Picture.ino │ └── Settings.h ├── 4_ESP32CAM_Receive_Picture │ ├── 4_ESP32CAM_Receive_Picture.ino │ └── Settings.h ├── 5_ESP32CAM_PCFileTransfer_Test │ ├── 5_ESP32CAM_PCFileTransfer_Test.ino │ └── YModemArray.h ├── 6_ESP32CAM_Receive_Picture_PCTransfer │ ├── 6_ESP32CAM_Receive_Picture_PCTransfer.ino │ ├── Settings.h │ └── YModemArray.h ├── 7_LoRa_Test_Transmitter_SX1278 │ └── 7_LoRa_Test_Transmitter_SX1278.ino ├── ESP32CAM Long Range Wireless Adapter PCB Bottom.pdf ├── ESP32CAM Long Range Wireless Adapter PCB Top.pdf ├── ESP32CAM Long Range Wireless Adapter Schematic.pdf ├── ESP32CAM_26.jpg ├── ESP32CAM_GPIO4_Transistor.jpg ├── How to download Tindie product documentation.pdf └── Readme.md ├── Long Range Wireless Adapter board for ESP32CAM and RFM9x ├── 1_LED_Blink │ └── 1_LED_Blink.ino ├── 20_Read_Battery_Voltage_Calibrate │ └── 20_Read_Battery_Voltage_Calibrate.ino ├── 21_GPS_Echo │ └── 21_GPS_Echo.ino ├── 2_ESP32CAM_DeepSleep_Test │ └── 2_ESP32CAM_DeepSleep_Test.ino ├── 3_ESP32CAM_Transmit_Picture │ ├── 3_ESP32CAM_Transmit_Picture.ino │ └── Settings.h ├── 4_ESP32CAM_Receive_Picture │ ├── 4_ESP32CAM_Receive_Picture.ino │ └── Settings.h ├── 5_ESP32CAM_PCFileTransfer_Test │ ├── 5_ESP32CAM_PCFileTransfer_Test.ino │ └── YModemArray.h ├── 6_ESP32CAM_Receive_Picture_PCTransfer │ ├── 6_ESP32CAM_Receive_Picture_PCTransfer.ino │ ├── Settings.h │ └── YModemArray.h ├── 7_LoRa_Test_Transmitter_SX1278 │ └── 7_LoRa_Test_Transmitter_SX1278.ino ├── ESP32CAM_25.jpg ├── ESP32CAM_26.jpg ├── ESP32CAM_27.jpg ├── ESP32CAM_GPIO4_Transistor.jpg ├── ESP32CAM_RFM9X_1.jpg ├── ESP32CAM_RFM9X_2.jpg ├── ESP32CAM_RFM9X_3.jpg ├── How to download Tindie product documentation.pdf ├── Long Range Wireless Adapter for ESP32CAM and RFM9x PCB.pdf ├── Long Range Wireless Adapter for ESP32CAM and RFM9x Schematic.pdf └── Readme.md ├── Long Range Wireless Adapter for ESP32CAM V2 ├── 1_LED_Blink │ └── 1_LED_Blink.ino ├── 20_Read_Battery_Voltage_Calibrate │ └── 20_Read_Battery_Voltage_Calibrate.ino ├── 21_GPS_Echo │ └── 21_GPS_Echo.ino ├── 2_ESP32CAM_DeepSleep_Test │ └── 2_ESP32CAM_DeepSleep_Test.ino ├── 3_ESP32CAM_Transmit_Picture │ ├── 3_ESP32CAM_Transmit_Picture.ino │ └── Settings.h ├── 4_ESP32CAM_Receive_Picture │ ├── 4_ESP32CAM_Receive_Picture.ino │ └── Settings.h ├── 5_ESP32CAM_PCFileTransfer_Test │ ├── 5_ESP32CAM_PCFileTransfer_Test.ino │ └── YModemArray.h ├── 6_ESP32CAM_Receive_Picture_PCTransfer │ ├── 6_ESP32CAM_Receive_Picture_PCTransfer.ino │ ├── Settings.h │ └── YModemArray.h ├── 7_LoRa_Test_Transmitter_SX1278 │ └── 7_LoRa_Test_Transmitter_SX1278.ino ├── ESP32CAM Long Range Wireless Adapter DRF1278F PCB.pdf ├── ESP32CAM Long Range Wireless Adapter DRF1278F Schematic.pdf ├── ESP32CAM_28.jpg ├── ESP32CAM_29.jpg ├── ESP32CAM_30.jpg ├── ESP32CAM_31.jpg ├── ESP32CAM_GPIO4_Transistor.jpg ├── How to download Tindie product documentation.pdf └── Readme.md ├── Mini Tracker Board for LoRa ├── How to download Tindie product documentation.pdf ├── Mini Tracker PCB Bottom.pdf ├── Mini Tracker PCB Top.pdf ├── Mini Tracker PCB.jpg ├── Mini Tracker Schematic.pdf ├── Mini Tracker.csv ├── MiniTracker_Bottom.jpg ├── MiniTracker_Top.jpg └── ReadMe.md ├── UBLOX MAX 8MQ GPS Breakout Board ├── Documentation.url ├── Eagle │ ├── PCB_Outline.brd │ └── PCB_Outline.sch ├── GPS Breakout 200917 PCB.pdf ├── GPS Breakout 200917 Schematic.pdf ├── GPS Breakout V5 Parts List .csv ├── How to download Tindie product documentation.pdf ├── ReadMe.md └── Ublox_MAXM8Q_Breakout_Board.jpg └── YModem File Transfers to PC ├── 5_ESP32CAM_PCFileTransfer_Test ├── 5_ESP32CAM_PCFileTransfer_Test.ino └── YModemArray.h ├── How to download Tindie product documentation.pdf ├── Readme.md ├── YModem1.jpg ├── YModem2.jpg ├── YModem3.jpg └── YModem6.jpg /Board_for_XIAO_LoRa/DIO0_DIO1_DIO2_Wiring.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa/DIO0_DIO1_DIO2_Wiring.jpg -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/DIO0_Only_Wiring.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa/DIO0_Only_Wiring.jpg -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Examples_for_XIAO_RP2040/15_GPS_Tracker_Transmitter/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 16/12/19 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | //******* Setup hardware pin definitions here ! *************** 9 | 10 | //These are the pin definitions for one of my own boards, the Easy Pro Mini, 11 | //be sure to change the definitiosn to match your own setup. 12 | 13 | #define NSS D3 //select pin on LoRa device 14 | #define NRESET D2 //reset pin on LoRa device 15 | #define DIO0 D1 //DIO0 pin on LoRa device, used for sensing RX and TX done 16 | 17 | //red on board LED is pin 17, green 16, blue 25 18 | #define RED1 17 19 | #define GREEN1 16 20 | #define BLUE1 25 21 | 22 | #define LORA_DEVICE DEVICE_SX1278 //this is the device we are using 23 | 24 | 25 | 26 | //******* Setup LoRa Parameters Here ! *************** 27 | 28 | //LoRa Modem Parameters 29 | const uint32_t Frequency = 434000000; //frequency of transmissions 30 | const uint32_t Offset = 0; //offset frequency for calibration purposes 31 | 32 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 33 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 34 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 35 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting 36 | 37 | const int8_t TXpower = 10; //LoRa TX power 38 | 39 | #define ThisNode '1' //a character that identifies this tracker 40 | 41 | //************************************************************************************************** 42 | // GPS Settings 43 | //************************************************************************************************** 44 | 45 | #define GPSBaud 9600 //GPS Baud rate 46 | 47 | #define WaitGPSFixSeconds 30 //time in seconds to wait for a new GPS fix 48 | #define WaitFirstGPSFixSeconds 120 //time to seconds to wait for the first GPS fix at startup 49 | #define Sleepsecs 15 //seconds between transmissions, this delay is used to set overall transmission cycle time 50 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Examples_for_XIAO_RP2040/9_GPS_Echo_Serial1/9_GPS_Echo_Serial1.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 03/11/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Tested on Seeeduino XIAO RP2040. 10 | 11 | Program Operation - This is a simple program to test a GPS connected to a Seeeduino XIAO RP2040. The 12 | program reads characters from the GPS through a UART serial port and sends (echoes) them to the IDE 13 | serial monitor. Connect the GPS RX pin to XIAO D6 (TX) and GPS TX pin to XIAO D7 (RX). 14 | 15 | Serial monitor baud rate is set at 115200. 16 | 17 | *******************************************************************************************************/ 18 | 19 | 20 | void loop() 21 | { 22 | while (Serial1.available()) 23 | { 24 | Serial.write(Serial1.read()); 25 | } 26 | } 27 | 28 | 29 | void setup() 30 | { 31 | Serial1.begin(9600); 32 | Serial.begin(115200); 33 | Serial.println("9_GPS_Echo_Serial1 Starting"); 34 | } 35 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Examples_for_XIAO_SAMD21/10_GPS_Echo_Sercom2/10_GPS_Echo_Sercom2.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 05/10/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Tested on Seeeduino XIAO SAMD21. 10 | 11 | Program Operation - This is a simple program to test a GPS connected to a Seeeduino XIAO. The port 12 | normally used for I2C, pins A4 and A5 are re-configured to be a serial port. The program reads 13 | characters from the GPS using through a this serial port and sends (echoes) them to the IDE serial 14 | monitor. Connect the GPS TX pin to XIAO A5 (RX). 15 | 16 | Serial monitor baud rate is set at 115200. 17 | 18 | *******************************************************************************************************/ 19 | 20 | #include 21 | #include "wiring_private.h" //for pinPeripheral() function 22 | 23 | Uart Serial3(&sercom2, A5, A4, SERCOM_RX_PAD_1, UART_TX_PAD_0); 24 | 25 | volatile int serviceCount3 = 0; 26 | 27 | extern "C" 28 | { 29 | void SERCOM2_Handler(void) 30 | { 31 | serviceCount3++; //to check this handler is used 32 | Serial3.IrqHandler(); 33 | } 34 | } 35 | 36 | 37 | void loop() 38 | { 39 | if (Serial3.available()) 40 | { 41 | Serial.write(Serial3.read()); 42 | } 43 | } 44 | 45 | void setup() 46 | { 47 | 48 | Serial.begin(115200); 49 | Serial.println(); 50 | Serial.println(F(__FILE__)); 51 | Serial.println(); 52 | 53 | delay(2000); 54 | pinPeripheral(A3, PIO_SERCOM_ALT); 55 | pinPeripheral(A2, PIO_SERCOM_ALT); 56 | Serial3.begin(9600); //for GPS 57 | } 58 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Examples_for_XIAO_SAMD21/11_I2C_Scanner/11_I2C_Scanner.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 05/10/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Tested on Seeeduino XIAO SAMD21. 10 | 11 | Program Operation - This scans the I2C bus from address 1 to address 126 and reports if an I2C device 12 | is found. 13 | 14 | Serial monitor baud rate is set at 115200 15 | *******************************************************************************************************/ 16 | 17 | #include 18 | 19 | 20 | void loop() 21 | { 22 | uint8_t I2Cstatus, I2Caddress; 23 | int16_t I2Cdevicesfound; 24 | 25 | Serial.println("Checking"); 26 | 27 | I2Cdevicesfound = 0; 28 | 29 | for (I2Caddress = 1; I2Caddress < 127; I2Caddress++ ) 30 | { 31 | Wire.beginTransmission(I2Caddress); 32 | I2Cstatus = Wire.endTransmission(); 33 | 34 | if (I2Cstatus == 0) 35 | { 36 | Serial.print("I2C device at address 0x"); 37 | if (I2Caddress < 16) 38 | { 39 | Serial.print("0"); 40 | } 41 | Serial.println(I2Caddress, HEX); 42 | I2Cdevicesfound++; 43 | } 44 | else if (I2Cstatus == 4) 45 | { 46 | Serial.print("ERROR at I2Caddress 0x"); 47 | if (I2Caddress < 16) 48 | { 49 | Serial.print("0"); 50 | } 51 | Serial.println(I2Caddress, HEX); 52 | } 53 | } 54 | 55 | Serial.print("I2C devices found "); 56 | Serial.println(I2Cdevicesfound); 57 | Serial.println(); 58 | delay(5000); 59 | } 60 | 61 | 62 | void setup() 63 | { 64 | Wire.begin(); 65 | 66 | Serial.begin(115200); 67 | Serial.println(); 68 | Serial.println(F(__FILE__)); 69 | Serial.println(); 70 | } 71 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Examples_for_XIAO_SAMD21/15_GPS_Tracker_Transmitter/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 16/12/19 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | //******* Setup hardware pin definitions here ! *************** 9 | 10 | //These are the pin definitions for one of my own boards, the Easy Pro Mini, 11 | //be sure to change the definitiosn to match your own setup. 12 | 13 | #define NSS A3 //select pin on LoRa device 14 | #define NRESET A2 //reset pin on LoRa device 15 | #define DIO0 A1 //DIO0 pin on LoRa device, used for sensing RX and TX done 16 | #define LED1 13 //on board LED, yellow 17 | #define ADMultiplier 1.628 //adjustment to convert AD value read into mV of battery voltage 18 | #define SupplyAD A0 //Resitor divider for battery voltage read connected here 19 | 20 | #define LORA_DEVICE DEVICE_SX1278 //this is the device we are using 21 | 22 | 23 | 24 | //******* Setup LoRa Parameters Here ! *************** 25 | 26 | //LoRa Modem Parameters 27 | const uint32_t Frequency = 434000000; //frequency of transmissions 28 | const uint32_t Offset = 0; //offset frequency for calibration purposes 29 | 30 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 31 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 32 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 33 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting 34 | 35 | const int8_t TXpower = 10; //LoRa TX power 36 | 37 | #define ThisNode '1' //a character that identifies this tracker 38 | 39 | //************************************************************************************************** 40 | // GPS Settings 41 | //************************************************************************************************** 42 | 43 | #define GPSBaud 9600 //GPS Baud rate 44 | 45 | #define WaitGPSFixSeconds 30 //time in seconds to wait for a new GPS fix 46 | #define WaitFirstGPSFixSeconds 120 //time to seconds to wait for the first GPS fix at startup 47 | #define Sleepsecs 15 //seconds between transmissions, this delay is used to set overall transmission cycle time 48 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Examples_for_XIAO_SAMD21/16_GPS_Tracker_Receiver_With_Display_and_GPS/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 16/12/19 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | 9 | //******* Setup hardware pin definitions here ! *************** 10 | 11 | //These are the pin definitions for one of my own boards, the Easy Pro Mini, 12 | //be sure to change the definitiosn to match your own setup. 13 | 14 | #define NSS A3 //select on LoRa device 15 | #define NRESET A2 //reset on LoRa device 16 | #define DIO0 A1 //DIO0 on LoRa device, used for RX and TX done 17 | #define LED1 13 //On board LED, low for on 18 | 19 | #define GPSPOWER -1 //Pin that controls power to GPS, set to -1 if not used 20 | #define GPSONSTATE LOW //logic level to turn GPS on via pin GPSPOWER 21 | #define GPSOFFSTATE HIGH //logic level to turn GPS off via pin GPSPOWER 22 | 23 | #define LORA_DEVICE DEVICE_SX1278 //this is the device we are using 24 | 25 | //******* Setup LoRa Test Parameters Here ! *************** 26 | 27 | //LoRa Modem Parameters 28 | const uint32_t Frequency = 434000000; //frequency of transmissions 29 | const uint32_t Offset = 0; //offset frequency for calibration purposes 30 | 31 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 32 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 33 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 34 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting 35 | 36 | const int8_t TXpower = 10; //LoRa transmit power in dBm 37 | 38 | 39 | //************************************************************************************************** 40 | // GPS Settings 41 | //************************************************************************************************** 42 | 43 | #define GPSBaud 9600 //GPS Baud rate 44 | 45 | #define NoRXGPSfixms 15000 //max number of mS to allow before no local GPS fix flagged 46 | #define DisplayRate 7 //when working OK the GPS will get a new fix every second or so 47 | //this rate defines how often the display should be updated 48 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Examples_for_XIAO_SAMD21/17_BME280_Sensor_Transmitter/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 18/10/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | // ******* Setup hardware pin definitions here ! *************** 9 | 10 | #define NSS A3 //select pin on LoRa device, matching D3 pins not recognised ? 11 | #define NRESET A2 //reset pin on LoRa device 12 | #define DIO0 A1 //DIO0 pin on LoRa device, used for sensing RX and TX done 13 | #define LED1 13 //on board LED, yellow 14 | #define ADMultiplier 1.628 //adjustment to convert AD value read into mV of battery voltage 15 | #define SupplyAD A0 //Resitor divider for battery voltage read connected here 16 | 17 | #define LORA_DEVICE DEVICE_SX1278 //this is the device we are using 18 | 19 | // ******* Setup LoRa Parameters Here ! *************** 20 | 21 | //LoRa Modem Parameters 22 | const uint32_t Frequency = 434000000; //frequency of transmissions in hertz 23 | const uint32_t Offset = 0; //offset frequency for calibration purposes 24 | 25 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 26 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 27 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 28 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting 29 | const int8_t TXpower = 10; //LoRa transmit power in dBm 30 | 31 | const uint16_t NetworkID = 0x3210; //NetworkID identifies this connection, needs to match value in receiver 32 | const uint8_t ThisNode = 49; //source node 49 = '1' 33 | const uint16_t TXattempts = 5; //number of times to transmit packet and wait for an acknowledge 34 | const uint32_t SleepSeconds = 60; //number of seconds spent asleep 35 | const uint32_t ACKtimeout = 1000; //Acknowledge timeout in mS 36 | const uint32_t TXtimeout = 5000; //transmit timeout in mS. If 0 return from transmit function after send. 37 | 38 | const uint8_t BME280_ADDRESS = 0x76; //I2C bus address of BME280 39 | const uint8_t BME280_REGISTER_CONTROL = 0xF4; //BME280 register number for power control 40 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Examples_for_XIAO_SAMD21/18_BME280_Sensor_Receiver/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 18/10/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | // ******* Setup hardware pin definitions here ! *************** 9 | 10 | #define NSS A3 //select pin on LoRa device, matching D3 pins not recognised ? 11 | #define NRESET A2 //reset pin on LoRa device 12 | #define DIO0 A1 //DIO0 pin on LoRa device, used for sensing RX and TX done 13 | #define LED1 13 //on board LED, yellow 14 | 15 | #define LORA_DEVICE DEVICE_SX1278 //this is the device we are using 16 | 17 | // ******* Setup LoRa Parameters Here ! *************** 18 | 19 | //LoRa Modem Parameters 20 | const uint32_t Frequency = 434000000; //frequency of transmissions in hertz 21 | const uint32_t Offset = 0; //offset frequency for calibration purposes 22 | 23 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 24 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 25 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 26 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting 27 | const int8_t TXpower = 10; //LoRa transmit power in dBm 28 | 29 | const uint32_t ACKdelay = 100; //delay in mS before sending acknowledge 30 | const uint32_t RXtimeout = 60000; //receive timeout in mS. 31 | 32 | const uint16_t NetworkID = 0x3210; //NetworkID identifies this connection, needs to match value in receiver 33 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Examples_for_XIAO_SAMD21/1_LED_Blink/1_LED_Blink.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 15/11/22 3 | 4 | This programs is supplied as is, it is up to the user of the program to decide if the programs are 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Tested on Seeeduino XIAO SAMD21. 10 | 11 | The XIAO pin 13 LED and TX and RX LEDs are blinked. The blinks should be close to one per second. 12 | 13 | Serial monitor baud rate is set at 115200. 14 | *******************************************************************************************************/ 15 | 16 | #define TXLED 11 //on board TX LED, blue 17 | #define RXLED 12 //on board RX LED, blue 18 | #define LED1 13 //on board LED is yellow 19 | 20 | 21 | void loop() 22 | { 23 | digitalWrite(LED1, LOW); 24 | delay(100); 25 | digitalWrite(LED1, HIGH); 26 | delay(890); //should give approx 1 second flash 27 | 28 | digitalWrite(TXLED, LOW); 29 | delay(100); 30 | digitalWrite(TXLED, HIGH); 31 | delay(890); 32 | 33 | digitalWrite(RXLED, LOW); 34 | delay(100); 35 | digitalWrite(RXLED, HIGH); 36 | delay(890); 37 | } 38 | 39 | 40 | void led_Flash(uint16_t flashes, uint16_t delaymS) 41 | { 42 | uint16_t index; 43 | 44 | for (index = 1; index <= flashes; index++) 45 | { 46 | digitalWrite(LED1, HIGH); //board LED on 47 | delay(delaymS); 48 | digitalWrite(LED1, LOW); //board LED off 49 | delay(delaymS); 50 | } 51 | } 52 | 53 | 54 | void setup() 55 | { 56 | pinMode(LED1, OUTPUT); //setup board LED pin as output 57 | digitalWrite(LED1, HIGH); //LED off 58 | pinMode(TXLED, OUTPUT); //setup board LED pin as output 59 | digitalWrite(TXLED, HIGH); //LED off 60 | pinMode(RXLED, OUTPUT); //setup board LED pin as output 61 | digitalWrite(RXLED, HIGH); //LED off 62 | 63 | led_Flash(2, 125); //2 LED flashes to indicate program start 64 | delay(2000); 65 | 66 | Serial.begin(115200); 67 | Serial.println(); 68 | Serial.println(F(__FILE__)); 69 | Serial.println(); 70 | } 71 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Examples_for_XIAO_SAMD21/21_I2C_20x4_LCD_Test/21_I2C_20x4_LCD_Test.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 28/10/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /************************************************************************************************************** 9 | Tested on Seeeduino XIAO SAMD21. 10 | 11 | Program operation - This is a test program for a 3.3V 20x4 LCD display with HD44870 controller driven via the 12 | PCF8563 I2C I\O expander. These are back packs that fit on the LCD display are readily available at low cost. 13 | 14 | First the program scans the I2C bus for devices, it should report a device found at 0x3F, this is the PCF8563. 15 | 16 | Then you should see this as the text on the LCD, assuming you have adjusted the contrast correctly. 17 | 18 | StuartsProjects 19 | I2C LCD Backpack 20 | 0123456789ABCDEFGHIJ 21 | Last Line of Text 22 | 23 | *****************************************************************************************************************/ 24 | 25 | 26 | #include 27 | #include //www.4tronix.co.uk/arduino/sketches/LiquidCrystal_V1.2.1.zip 28 | #include "I2C_Scanner.h" 29 | 30 | #define PCF8574Address 0x3F //address of PCF8574 can change, I have noted addresses of 0x27 and 0x3F 31 | 32 | LiquidCrystal_I2C disp(PCF8574Address, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //Set the LCD I2C address and pins used 33 | 34 | 35 | void loop() 36 | { 37 | screen1(); 38 | delay(2000); 39 | disp.clear(); 40 | } 41 | 42 | 43 | void screen1() 44 | { 45 | disp.setCursor(0, 0); //Start at character 4 on line 0 46 | disp.print("StuartsProjects"); 47 | delay(500); 48 | disp.setCursor(0, 1); 49 | disp.print("I2C LCD Backpack"); //Print text on 2nd Line 50 | delay(500); 51 | disp.setCursor(0, 2); 52 | disp.print("0123456789ABCDEFGHIJ"); //Print 20 characters on 3rd line 53 | delay(500); 54 | disp.setCursor(0, 3); 55 | disp.print("Last Line of Text"); 56 | } 57 | 58 | 59 | void setup() 60 | { 61 | Serial.begin(115200); 62 | Serial.println(); 63 | Serial.println(__FILE__); 64 | Serial.println(); 65 | 66 | setup_I2CScan(); 67 | run_I2CScan(); 68 | 69 | disp.begin(20, 4); //initialize the lcd for 20 chars 4 lines, turn on backlight 70 | disp.backlight(); //backlight on 71 | } 72 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Examples_for_XIAO_SAMD21/21_I2C_20x4_LCD_Test/I2C_Scanner.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------- 2 | // i2c_scanner 3 | // 4 | // Version 1 5 | // This program (or code that looks like it) 6 | // can be found in many places. 7 | // For example on the Arduino.cc forum. 8 | // The original author is not know. 9 | // Version 2, Juni 2012, Using Arduino 1.0.1 10 | // Adapted to be as simple as possible by Arduino.cc user Krodal 11 | // Version 3, Feb 26 2013 12 | // V3 by louarnold 13 | // Version 4, March 3, 2013, Using Arduino 1.0.3 14 | // by Arduino.cc user Krodal. 15 | // Changes by louarnold removed. 16 | // Scanning addresses changed from 0...127 to 1...119, 17 | // according to the i2c scanner by Nick Gammon 18 | // http://www.gammon.com.au/forum/?id=10896 19 | // Version 5, March 28, 2013 20 | // As version 4, but address scans now to 127. 21 | // A sensor seems to use address 120. 22 | // Version 6, November 27, 2015. 23 | // Added waiting for the Leonardo serial communication. 24 | // 25 | // 26 | // This sketch tests the standard 7-bit addresses 27 | // Devices with higher bit address might not be seen properly. 28 | // 29 | 30 | 31 | //#include 32 | 33 | 34 | void setup_I2CScan() 35 | { 36 | Wire.begin(); 37 | 38 | //Serial.begin(9600); 39 | Serial.println("I2C Scanner"); 40 | } 41 | 42 | 43 | void run_I2CScan() 44 | { 45 | byte error, address; 46 | int nDevices; 47 | 48 | Serial.println("Scanning..."); 49 | 50 | nDevices = 0; 51 | for(address = 1; address < 127; address++ ) 52 | { 53 | // The i2c_scanner uses the return value of 54 | // the Write.endTransmisstion to see if 55 | // a device did acknowledge to the address. 56 | Wire.beginTransmission(address); 57 | error = Wire.endTransmission(); 58 | 59 | if (error == 0) 60 | { 61 | Serial.print("I2C device found at address 0x"); 62 | if (address<16) 63 | Serial.print("0"); 64 | Serial.println(address,HEX); 65 | 66 | nDevices++; 67 | } 68 | else if (error==4) 69 | { 70 | Serial.print("Unknown error at address 0x"); 71 | if (address<16) 72 | Serial.print("0"); 73 | Serial.println(address,HEX); 74 | } 75 | } 76 | if (nDevices == 0) 77 | Serial.println("No I2C devices found"); 78 | else 79 | Serial.println("done"); 80 | 81 | Wire.endTransmission(); 82 | } 83 | 84 | 85 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Examples_for_XIAO_SAMD21/5_WakeUpOnExternalInterrupt/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 16/12/19 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | //******* Setup hardware pin definitions here ! *************** 9 | 10 | 11 | #define NSS A3 //select pin on LoRa device, matching D3 pins not recognised ? 12 | #define NRESET A2 //reset pin on LoRa device 13 | #define DIO0 A0 //DIO0 pin on LoRa device, used for sensing RX and TX done 14 | 15 | 16 | 17 | #define LORA_DEVICE DEVICE_SX1278 //we need to define the device we are using 18 | 19 | //******* Setup LoRa Parameters Here ! *************** 20 | 21 | //LoRa Modem Parameters 22 | const uint32_t Frequency = 434000000; //frequency of transmissions in hertz 23 | const uint32_t Offset = 0; //offset frequency for calibration purposes 24 | 25 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 26 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 27 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 28 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting, normally set to auto 29 | 30 | const int8_t TXpower = 2; //LoRa transmit power in dBm 31 | 32 | const uint16_t packet_delay = 1000; //mS delay between packets 33 | 34 | #define TXBUFFER_SIZE 32 //RX buffer size 35 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Examples_for_XIAO_SAMD21/7_LoRa_Transmitter_Sleep_Switch_Wakeup/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 05/10/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | //******* Setup hardware pin definitions here ! *************** 9 | 10 | 11 | #define NSS A3 //select pin on LoRa device, matching D3 pins not recognised ? 12 | #define NRESET A2 //reset pin on LoRa device 13 | #define DIO0 A1 //DIO0 pin on LoRa device, used for sensing RX and TX done 14 | #define LED1 13 //on board LED, yellow 15 | #define SWITCH1 A6 //switch pin, used to wake processor up 16 | 17 | #define LORA_DEVICE DEVICE_SX1278 //we need to define the device we are using 18 | 19 | //******* Setup LoRa Parameters Here ! *************** 20 | 21 | //LoRa Modem Parameters 22 | const uint32_t Frequency = 434000000; //frequency of transmissions in hertz 23 | const uint32_t Offset = 0; //offset frequency for calibration purposes 24 | 25 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 26 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 27 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 28 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting, normally set to auto 29 | 30 | const int8_t TXpower = 2; //LoRa transmit power in dBm 31 | 32 | const uint16_t packet_delay = 1000; //mS delay between packets 33 | 34 | #define TXBUFFER_SIZE 32 //RX buffer size 35 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Examples_for_XIAO_SAMD21/8_LoRa_Transmitter_Sleep_RTC_Wakeup/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 16/12/19 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | //******* Setup hardware pin definitions here ! *************** 9 | 10 | 11 | #define NSS A3 //select pin on LoRa device, matching D3 pins not recognised ? 12 | #define NRESET A2 //reset pin on LoRa device 13 | #define DIO0 A1 //DIO0 pin on LoRa device, used for sensing RX and TX done 14 | #define LED1 13 //on board LED, yellow 15 | 16 | #define LORA_DEVICE DEVICE_SX1278 //we need to define the device we are using 17 | 18 | //******* Setup LoRa Parameters Here ! *************** 19 | 20 | //LoRa Modem Parameters 21 | const uint32_t Frequency = 434000000; //frequency of transmissions in hertz 22 | const uint32_t Offset = 0; //offset frequency for calibration purposes 23 | 24 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 25 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 26 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 27 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting, normally set to auto 28 | 29 | const int8_t TXpower = 2; //LoRa transmit power in dBm 30 | 31 | const uint16_t packet_delay = 1000; //mS delay between packets 32 | 33 | #define TXBUFFER_SIZE 32 //RX buffer size 34 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Examples_for_XIAO_SAMD21/9_GPS_Echo_Serial1/9_GPS_Echo_Serial1.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 05/10/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Tested on Seeeduino XIAO SAMD21. 10 | 11 | Program Operation - This is a simple program to test a GPS connected to a Seeeduino XIAO. The program 12 | reads characters from the GPS through a UART serial port and sends (echoes) them to the IDE serial 13 | monitor. Connect the GPS RX pin to XIAO A6 (TX) and GPS TX pin to XIAO A7 (RX). 14 | 15 | Serial monitor baud rate is set at 115200. 16 | 17 | *******************************************************************************************************/ 18 | 19 | 20 | void loop() 21 | { 22 | while (Serial1.available()) 23 | { 24 | Serial.write(Serial1.read()); 25 | } 26 | } 27 | 28 | 29 | void setup() 30 | { 31 | Serial1.begin(9600); //Serial port for GPS 32 | 33 | Serial.begin(115200); 34 | Serial.println(); 35 | Serial.println(F(__FILE__)); 36 | Serial.println(); 37 | 38 | } 39 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Examples_for_XIAO_SAMD21/XIAO_with_LoRa_Portable3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa/Examples_for_XIAO_SAMD21/XIAO_with_LoRa_Portable3.jpg -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/PCB_BOTTOM.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa/PCB_BOTTOM.jpg -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/PCB_TOP.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa/PCB_TOP.jpg -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Parts List.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa/Parts List.xls -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/Readme.md: -------------------------------------------------------------------------------- 1 | ## Seeeduino XIAO SAMD21 2 | 3 | This is the repository for programs for the Seeeduino XIAO SAMD21 version, some of which use the SX127X-LoRa library. The XIAO SAMD21 is discussed in this article; 4 | 5 | 6 | [**https://stuartsprojects.github.io/2022/10/03/Seeeduino_XIAO.html**](https://stuartsprojects.github.io/2022/10/03/Seeeduino_XIAO.html) 7 | 8 | 9 | Note that the Arduino program examples use DIO0 on the RFM9X LoRa module to sense TX and RX done. To ensure that this pin is connected to the XIAO A1 pin you will need to fit a wire link in the D4 position. 10 | 11 | ### TTN LoRaWAN use 12 | 13 | If you want to use the board for TTN LoRaWAN, there are two choices; 14 | 15 | First you can fit diodes (1N4148) in the D4 and D2 positions and then configure the LMIC definition for the pins as; 16 | 17 | //Pins for Seeeduino XIAO SAMD21 18 | const lmic_pinmap lmic_pins = { 19 | .nss = A3, 20 | .rxtx = LMIC_UNUSED_PIN, 21 | .rst = A2, 22 | .dio = {A1, A1, LMIC_UNUSED_PIN}, 23 | }; 24 | 25 | This sharing of DIO0 and DIO1 onto one pin, A1, with diodes seems to work well enough. 26 | 27 | Or if you wish you can connect DIO0 and DIO1 onto seperate pins of the XIAO with links. If you fit a wire link in the D4 position and fit a wire link on LK2 (in the middle of D2) you can use this LMIC pin definition; 28 | 29 | 30 | //Pins for Seeeduino XIAO SAMD21 31 | const lmic_pinmap lmic_pins = { 32 | .nss = A3, 33 | .rxtx = LMIC_UNUSED_PIN, 34 | .rst = A2, 35 | .dio = {A1, A6, LMIC_UNUSED_PIN}, 36 | }; 37 | 38 | But note that you then loose the use of the serial port on the XIAO. 39 | 40 |
41 |
42 | 43 | #### Stuart Robinson 44 | #### October 2022 45 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/StuartsProjects_XIAO_LoRa_Board_PCB_Bottom.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa/StuartsProjects_XIAO_LoRa_Board_PCB_Bottom.pdf -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/StuartsProjects_XIAO_LoRa_Board_PCB_Top.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa/StuartsProjects_XIAO_LoRa_Board_PCB_Top.pdf -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/StuartsProjects_XIAO_LoRa_Board_Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa/StuartsProjects_XIAO_LoRa_Board_Schematic.pdf -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/XIAO RP2040 Overview.url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,11 3 | [InternetShortcut] 4 | IDList= 5 | URL=https://wiki.seeedstudio.com/XIAO-RP2040/ 6 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/XIAO SAMD21 Getting Started.url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,11 3 | [InternetShortcut] 4 | IDList= 5 | URL=https://wiki.seeedstudio.com/Seeeduino-XIAO/#hardware 6 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/XIAO-RP2040-Pinout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa/XIAO-RP2040-Pinout.png -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa/XIAO-SAMD21-Pinout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa/XIAO-SAMD21-Pinout.png -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa_V2/020123_11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa_V2/020123_11.jpg -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa_V2/12_Wakeup_On_External_Interrupt/12_Wakeup_On_External_Interrupt.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 05/10/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Program Operation - This program puts an XIAO into deep sleep mode ready to be woken up by an external 10 | switch. In this example connect A6 to GND to wake the XIAO up from sleep. 11 | 12 | Serial monitor baud rate is set at 115200. 13 | *******************************************************************************************************/ 14 | #include "ArduinoLowPower.h" //get library here > https://github.com/arduino-libraries/ArduinoLowPower 15 | 16 | #define LED1 13 //on board LED, yellow 17 | #define SWITCH1 A6 //switch pin, used to wake processor up 18 | 19 | 20 | void loop() 21 | { 22 | Serial.println(F("Sleeping zzzzz....")); 23 | Serial.println(); 24 | Serial.flush(); 25 | delay(2000); 26 | digitalWrite(LED1, HIGH); //make sure LED off when in sleep 27 | 28 | LowPower.deepSleep(); 29 | 30 | led_Flash(10, 50); //10 quick LED flashes to indicate program re-start 31 | 32 | Serial.println(F("Awake !")); 33 | Serial.flush(); 34 | led_Flash(10, 500); //60 1 second LED flashes to indicate program awake 35 | } 36 | 37 | 38 | void wakeUp() 39 | { 40 | //handler for the interrupt 41 | } 42 | 43 | 44 | void led_Flash(uint16_t flashes, uint16_t delaymS) 45 | { 46 | uint16_t index; 47 | for (index = 1; index <= flashes; index++) 48 | { 49 | digitalWrite(LED1, LOW); 50 | delay(delaymS); 51 | digitalWrite(LED1, HIGH); 52 | delay(delaymS); 53 | } 54 | } 55 | 56 | 57 | void setup() 58 | { 59 | pinMode(SWITCH1, INPUT_PULLUP); 60 | pinMode(LED1, OUTPUT); 61 | 62 | led_Flash(10, 500); //10 one second LED flashes to indicate program start 63 | 64 | Serial.begin(115200); 65 | Serial.println(); 66 | Serial.println(F("12_Wakeup_On_External_Interrupt")); 67 | 68 | LowPower.attachInterruptWakeup(SWITCH1, wakeUp, CHANGE); //setup interrupt for wake up 69 | } 70 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa_V2/30_FRAM_Memory_Clear/I2C_Scanner.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------- 2 | // i2c_scanner 3 | // 4 | // Version 1 5 | // This program (or code that looks like it) 6 | // can be found in many places. 7 | // For example on the Arduino.cc forum. 8 | // The original author is not know. 9 | // Version 2, Juni 2012, Using Arduino 1.0.1 10 | // Adapted to be as simple as possible by Arduino.cc user Krodal 11 | // Version 3, Feb 26 2013 12 | // V3 by louarnold 13 | // Version 4, March 3, 2013, Using Arduino 1.0.3 14 | // by Arduino.cc user Krodal. 15 | // Changes by louarnold removed. 16 | // Scanning addresses changed from 0...127 to 1...119, 17 | // according to the i2c scanner by Nick Gammon 18 | // http://www.gammon.com.au/forum/?id=10896 19 | // Version 5, March 28, 2013 20 | // As version 4, but address scans now to 127. 21 | // A sensor seems to use address 120. 22 | // Version 6, November 27, 2015. 23 | // Added waiting for the Leonardo serial communication. 24 | // 25 | // 26 | // This sketch tests the standard 7-bit addresses 27 | // Devices with higher bit address might not be seen properly. 28 | // 29 | 30 | 31 | //#include 32 | 33 | 34 | void setup_I2CScan() 35 | { 36 | Wire.begin(); 37 | 38 | //Serial.begin(9600); 39 | Serial.println("I2C Scanner"); 40 | } 41 | 42 | 43 | void run_I2CScan() 44 | { 45 | byte error, address; 46 | int nDevices; 47 | 48 | Serial.println("Scanning for I2C Devices..."); 49 | 50 | nDevices = 0; 51 | for(address = 1; address < 127; address++ ) 52 | { 53 | // The i2c_scanner uses the return value of 54 | // the Write.endTransmisstion to see if 55 | // a device did acknowledge to the address. 56 | Wire.beginTransmission(address); 57 | error = Wire.endTransmission(); 58 | 59 | if (error == 0) 60 | { 61 | Serial.print("I2C device found at address 0x"); 62 | if (address<16) 63 | Serial.print("0"); 64 | Serial.println(address,HEX); 65 | 66 | nDevices++; 67 | } 68 | else if (error==4) 69 | { 70 | Serial.print("Unknown error at address 0x"); 71 | if (address<16) 72 | Serial.print("0"); 73 | Serial.println(address,HEX); 74 | } 75 | } 76 | if (nDevices == 0) 77 | Serial.println("No I2C devices found"); 78 | else 79 | Serial.println("done"); 80 | 81 | Wire.endTransmission(); 82 | } 83 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa_V2/8_GPS_Echo/8_GPS_Echo.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 05/02/23 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Program Operation - This is a simple program to test a GPS connected to a Seeeduino XIAO SAMD21. 10 | The program reads characters from the GPS through a serial port and sends (echoes) them to the IDE serial 11 | monitor. Connect the GPS RX pin to XIAO A6 (TX) and GPS TX pin to XIAO A7 (TX). 12 | 13 | Before programming the XIAO or powering it up you must close the Arduino IDE Serial Monitor. 14 | 15 | Serial monitor baud rate is set at 115200. 16 | 17 | *******************************************************************************************************/ 18 | 19 | 20 | void loop() 21 | { 22 | while (Serial1.available()) 23 | { 24 | Serial.write(Serial1.read()); 25 | } 26 | } 27 | 28 | 29 | void setup() 30 | { 31 | Serial1.begin(9600); 32 | Serial.begin(115200); 33 | Serial.println("8_GPS_Echo Starting"); 34 | } 35 | -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa_V2/Board_for_XIAO_LoRa_V2_Build.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa_V2/Board_for_XIAO_LoRa_V2_Build.pdf -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa_V2/Board_for_XIAO_LoRa_V2_PCB_BOTTOM.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa_V2/Board_for_XIAO_LoRa_V2_PCB_BOTTOM.pdf -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa_V2/Board_for_XIAO_LoRa_V2_PCB_TOP.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa_V2/Board_for_XIAO_LoRa_V2_PCB_TOP.pdf -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa_V2/Board_for_XIAO_LoRa_V2_Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa_V2/Board_for_XIAO_LoRa_V2_Schematic.pdf -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa_V2/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa_V2/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa_V2/Parts List Board_for_XIAO_LoRa_V2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa_V2/Parts List Board_for_XIAO_LoRa_V2.pdf -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa_V2/TTN_LoRaWAN/Arduino IDE Configuration.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa_V2/TTN_LoRaWAN/Arduino IDE Configuration.pdf -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa_V2/TTN_LoRaWAN/Board_for_XIAO_LoRa_V2_TTN_Node_Build.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa_V2/TTN_LoRaWAN/Board_for_XIAO_LoRa_V2_TTN_Node_Build.pdf -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa_V2/TTN_LoRaWAN/Important - Please Read.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa_V2/TTN_LoRaWAN/Important - Please Read.pdf -------------------------------------------------------------------------------- /Board_for_XIAO_LoRa_V2/Using GPSs with Power down capability.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Board_for_XIAO_LoRa_V2/Using GPSs with Power down capability.pdf -------------------------------------------------------------------------------- /Breadboard Friendly DRF1278 Board/DRF1278F.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly DRF1278 Board/DRF1278F.jpg -------------------------------------------------------------------------------- /Breadboard Friendly DRF1278 Board/DRF1278_Board_SMA.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly DRF1278 Board/DRF1278_Board_SMA.jpg -------------------------------------------------------------------------------- /Breadboard Friendly DRF1278 Board/DRF1278_Board_Wire.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly DRF1278 Board/DRF1278_Board_Wire.jpg -------------------------------------------------------------------------------- /Breadboard Friendly DRF1278 Board/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly DRF1278 Board/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /Breadboard Friendly DRF1278 Board/Pin Layout.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly DRF1278 Board/Pin Layout.jpg -------------------------------------------------------------------------------- /Breadboard Friendly DRF1278 Board/ReadMe.md: -------------------------------------------------------------------------------- 1 | ### Breadboard Friendly DRF1278 Board 2 | 3 | This is a board to adapt your 433Mhz Dorji DRF1278F lora module into a breadboard friendly format. The board will allow you to use the DRF1278F with a standard 0.1” matrix breadboard or stripboards. 4 | 5 | This is a board only, the DRF1278 is not supplied. 6 | 7 | The antenna connection can be either a simple wire, U.FL connector or an edge SMA socket. The boards are supplied with the 0.1" pins un-soldered, leaving you the option of how to assemble or use the board in a project. 8 | This board can be used with the Easy mikroBUS™ Pro Mini controller available in this shop. 9 | 10 | **Do not operate the DRF1278F module without an antenna.** 11 | 12 | **The DRF1278F is a 3.3V supply and logic level device, do not use directly with 5V controller boards such as the Arduino UNO.** 13 | 14 | There are many examples for using this module for GPS trackers or sensors provided in an Arduino library at this link; [SX12XX Library](https://github.com/StuartsProjects/SX12XX-LoRa) 15 | 16 | The pin out of the board is below, the lora device pin names on the outside. 17 | 18 | https://github.com/StuartsProjects/Devices/tree/master/Breadboard%20Friendly%20DRF1278%20Board -------------------------------------------------------------------------------- /Breadboard Friendly DRF1278 LoRa Module/DRF1278F_Module.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly DRF1278 LoRa Module/DRF1278F_Module.jpg -------------------------------------------------------------------------------- /Breadboard Friendly DRF1278 LoRa Module/DRF1278_Board_SMA.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly DRF1278 LoRa Module/DRF1278_Board_SMA.jpg -------------------------------------------------------------------------------- /Breadboard Friendly DRF1278 LoRa Module/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly DRF1278 LoRa Module/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /Breadboard Friendly DRF1278 LoRa Module/Pin Layout.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly DRF1278 LoRa Module/Pin Layout.jpg -------------------------------------------------------------------------------- /Breadboard Friendly DRF1278 LoRa Module/ReadMe.md: -------------------------------------------------------------------------------- 1 | ### Breadboard Friendly DRF1278 LoRa Module 2 | 3 | 4 | This module is a 433Mhz Dorji DRF1278F lora module fitted to a breadboard friendly breakout board. This module will allow you to use the DRF1278F with a standard 0.1” matrix breadboard or stripboards. 5 | 6 | The module is supplied with the DRF1278F module and edge SMA antenna connector fitted. The module is however supplied with the 0.1" pins** unsoldered** so leaving you the option of how to assemble or use the board in a project. 7 | 8 | The module can be used with a simple wire antenna about 17.5cm long instead of using the SAM socket. If you want to do this please add a comment with the order to have the module supplied with the SMA edge socket un-soldered. 9 | This board can be used with the Easy mikroBUS™ Pro Mini controller available in my store. 10 | 11 | **Do not operate the DRF1278F module without an antenna.** 12 | 13 | **The DRF1278F is a 3.3V supply and logic level device, do not use directly with 5V controller boards such as the Arduino UNO.** 14 | 15 | There are many examples for using this module for GPS trackers or sensors provided in an Arduino library at this link; [SX12XX Library](https://github.com/StuartsProjects/SX12XX-LoRa) 16 | 17 | The pin out of the board is below, the lora device pin names on the outside. 18 | 19 | Board documentation here; 20 | 21 | https://github.com/StuartsProjects/Devices/tree/master/Breadboard%20Friendly%20DRF1278%20LoRa%20Module -------------------------------------------------------------------------------- /Breadboard Friendly Dorji SX1262 SX1268 Board/Dorji_DRF1262_DRF1268_BBF_Board.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly Dorji SX1262 SX1268 Board/Dorji_DRF1262_DRF1268_BBF_Board.jpg -------------------------------------------------------------------------------- /Breadboard Friendly Dorji SX1262 SX1268 Board/Dorji_SX1262_SX1268_Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly Dorji SX1262 SX1268 Board/Dorji_SX1262_SX1268_Schematic.pdf -------------------------------------------------------------------------------- /Breadboard Friendly Dorji SX1262 SX1268 Board/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly Dorji SX1262 SX1268 Board/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /Breadboard Friendly Dorji SX1262 SX1268 Board/ReadMe.md: -------------------------------------------------------------------------------- 1 | ### Breadboard Friendly Dorji SX1262 SX1268 Board 2 | 3 | 4 | ![](Dorji_DRF1262_DRF1268_BBF_Board.jpg) 5 | 6 | 7 | This is a board to adapt your Dorji SX1262 or SX1268 LoRa® module into a breadboard friendly format. The board will allow you to use the SX1262 or SX1268 with a standard 0.1” matrix breadboard or stripboards. This is a board only, the SX1262 or SX1268 module is not supplied. 8 | 9 | The antenna connection can be either a simple wire, U.FL connector or an edge SMA socket. The boards are supplied with the 0.1" pins un-soldered, leaving you the option of how to assemble or use the board in a project. 10 | This board can be used with the Easy mikroBUS™ Pro Mini controller available in this shop. 11 | 12 | The Dorji SX1262 or SX1268 module is fitted with a TCXO which means that you can use LoRa® at the low bandwidths such as 7.8khz, this is far lower than 62.5khz which tends to be the limit for the SX127x style LoRa® devices. The TCXO also means that when sending FSK RTTY, as used in high altitude balloon tracking, there is less heating induced frequency drift. 13 | 14 | **Do not operate the SX1262 or SX1268 module without an antenna.** 15 | 16 | **The SX1262 and SX1268 is a 3.3V supply and logic level device, do not use directly with 5V controller boards such as the Arduino UNO.** 17 | 18 | There are many examples for using this module for GPS trackers or sensors provided in an Arduino library at this link; **[SX12XX Library](https://github.com/StuartsProjects/SX12XX-LoRa)** 19 | 20 | The pin out of the board is below, the LoRa® device pin names on the outside. 21 | 22 | 23 | ![](Dorji_SX1262_SX1268_Schematic.jpg) 24 | 25 | 26 | Various options have been added to the board. If you are using the board with the **[Easy Pro Mini](https://www.tindie.com/products/20845/)** product available in the store then you can use the board as is. If you want to use the board in some other mikroBUS™ compatible controller, then you will need to make some links since the mikroBUS™ standard only has two rows of 8 pins and as well has having DIO1,DIO2 and DIO3 pins there are BUSY and RW pins needed as well. The controller would have to have an analogue pin connected to AN1 that can be set in digital mode, a lot can fortunately. LK1 can then be used to connect the SX1262 or SX1268 modules BUSY pin. You would also need to connect the SW pin to UARTTX on the Mikrobus socket so that the microcontroller can access the SX1262 or SX1268 modules RW pin. -------------------------------------------------------------------------------- /Breadboard Friendly EbyteE28 Board/Description.md: -------------------------------------------------------------------------------- 1 | ### Breadboard Friendly Ebyte E28 Board 2 | 3 | ![](/E28_BBF_Board.jpg) 4 | 5 | This is a board to adapt a 2.4Ghz Ebyte E28-2G4M12S and E28-2G4M20S LoRa modules into a breadboard friendly format. The board will allow you to use your Ebyte E28 module with a standard 0.1” matrix breadboard or strip board. 6 | 7 | The Ebyte E28 module has a PCB antenna, so no external antenna is needed. The boards are supplied with the 0.1" pins unsoldered, leaving you the option of how to assemble or use the board in a project. 8 | This board can be used with the Easy mikroBUS™ Pro Mini controller available in this shop, but the E28-2G4M20S module is only recommended if you absolutely must have the extra output power, see the notes below. 9 | 10 | The E28-2G4M20S module needs additional RX and TX enable pins, these are available on the board and the SX12XX-LoRa does support their use. However if your using the Easy mikroBUS™ Pro Mini controller boards you will need to connect up links LK1 and LK2 on the board and use Arduino pins A2 and A3 to control the E28 modules TXEN and RXEN pins respectively. Also with A6 and A7 already allocated for TXEN and RXEN they cannot be used elsewhere so in total the following Arduino pins will not be available for other uses, A2,A3,A6,A7. The E28-2G4M12S is a better choice for the Easy mikroBUS™ Pro Mini controller boards and no links need to be made. 11 | 12 | The board can be used with an E28-2G4M12S as a compatible 2x8pin mikroBUS™ board but the AN pin on the mikroBUS™ socket will need to be capable of digital operation, and you need to make link LK3. 13 | 14 | The Ebyte E28 is a 3.3V supply and 3.3V logic level device, do not use directly with 5V controller boards such as the Arduino UNO. 15 | The pinout of the board is below, the module pins on the outside. 16 | 17 | 18 | ![](/E28_BBF.jpg) 19 | 20 | 21 | There are many examples for using these boards for GPS trackers or sensors provided in an Arduino the library here; 22 | 23 | [https://github.com/StuartsProjects/SX12XX-LoRa](https://github.com/StuartsProjects/SX12XX-LoRa) 24 | 25 | Note: Some of the boards are marked on the silk screen print as for the E28-2G4M16S, this is a error and it should read E28-2G4M12S, this has no impact on the correct operation of the board. 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Breadboard Friendly EbyteE28 Board/E28_BBF.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly EbyteE28 Board/E28_BBF.jpg -------------------------------------------------------------------------------- /Breadboard Friendly EbyteE28 Board/E28_BBF_Board.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly EbyteE28 Board/E28_BBF_Board.jpg -------------------------------------------------------------------------------- /Breadboard Friendly EbyteE28 Board/E28_Mikrobus.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly EbyteE28 Board/E28_Mikrobus.pdf -------------------------------------------------------------------------------- /Breadboard Friendly EbyteE28 Board/E28_Mikrobus_PCB.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly EbyteE28 Board/E28_Mikrobus_PCB.pdf -------------------------------------------------------------------------------- /Breadboard Friendly EbyteE28 Board/E28_Mikrobus_Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly EbyteE28 Board/E28_Mikrobus_Schematic.pdf -------------------------------------------------------------------------------- /Breadboard Friendly EbyteE28 Board/E28_Mounting.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly EbyteE28 Board/E28_Mounting.jpg -------------------------------------------------------------------------------- /Breadboard Friendly EbyteE28 Board/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly EbyteE28 Board/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /Breadboard Friendly EbyteE28 Board/Product Description.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly EbyteE28 Board/Product Description.doc -------------------------------------------------------------------------------- /Breadboard Friendly EbyteE28 Board/ReadMe.md: -------------------------------------------------------------------------------- 1 | ### Breadboard Friendly Ebyte E28 Board 2 | 3 | ![](/E28_BBF_Board.jpg) 4 | 5 | This is a board to adapt a 2.4Ghz Ebyte E28-2G4M12S and E28-2G4M20S LoRa modules into a breadboard friendly format. The board will allow you to use your Ebyte E28 module with a standard 0.1” matrix breadboard or strip board. 6 | 7 | The Ebyte E28 module has a PCB antenna, so no external antenna is needed. The boards are supplied with the 0.1" pins unsoldered, leaving you the option of how to assemble or use the board in a project. 8 | This board can be used with the Easy mikroBUS™ Pro Mini controller available in this shop, but the E28-2G4M20S module is only recommended if you absolutely must have the extra output power, see the notes below. 9 | 10 | The E28-2G4M20S module needs additional RX and TX enable pins, these are available on the board and the SX12XX-LoRa does support their use. However if your using the Easy mikroBUS™ Pro Mini controller boards you will need to connect up links LK1 and LK2 on the board and use Arduino pins A2 and A3 to control the E28 modules TXEN and RXEN pins respectively. Also with A6 and A7 already allocated for TXEN and RXEN they cannot be used elsewhere so in total the following Arduino pins will not be available for other uses, A2,A3,A6,A7. The E28-2G4M12S is a better choice for the Easy mikroBUS™ Pro Mini controller boards and no links need to be made. 11 | 12 | The board can be used with an E28-2G4M12S as a compatible 2x8pin mikroBUS™ board but the AN pin on the mikroBUS™ socket will need to be capable of digital operation, and you need to make link LK3. 13 | 14 | The Ebyte E28 is a 3.3V supply and 3.3V logic level device, do not use directly with 5V controller boards such as the Arduino UNO. 15 | The pinout of the board is below, the module pins on the outside. 16 | 17 | 18 | ![](/E28_BBF.jpg) 19 | 20 | 21 | There are many examples for using these boards for GPS trackers or sensors provided in an Arduino the library here; 22 | 23 | [https://github.com/StuartsProjects/SX12XX-LoRa](https://github.com/StuartsProjects/SX12XX-LoRa) 24 | 25 | Note: Some of the boards are marked on the silk screen print as for the E28-2G4M16S, this is a error and it should read E28-2G4M12S, this has no impact on the correct operation of the board. 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Breadboard Friendly NiceRF SX1262 Board/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly NiceRF SX1262 Board/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /Breadboard Friendly NiceRF SX1262 Board/NiceRF_SX1262_BBF_Board.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly NiceRF SX1262 Board/NiceRF_SX1262_BBF_Board.jpg -------------------------------------------------------------------------------- /Breadboard Friendly NiceRF SX1262 Board/NiceRF_SX1262_BBF_Board_Schematic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly NiceRF SX1262 Board/NiceRF_SX1262_BBF_Board_Schematic.jpg -------------------------------------------------------------------------------- /Breadboard Friendly NiceRF SX1262 Board/NiceRF_SX1262_Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly NiceRF SX1262 Board/NiceRF_SX1262_Schematic.pdf -------------------------------------------------------------------------------- /Breadboard Friendly NiceRF SX1262 Board/ReadMe.md: -------------------------------------------------------------------------------- 1 | ### Breadboard Friendly NiceRF SX1262 Board 2 | 3 | 4 | ![](NiceRF_SX1262_BBF_Board.jpg) 5 | 6 | 7 | This is a board to adapt your NiceRF SX1262 LoRa® module into a breadboard friendly format. The board will allow you to use the SX1262 with a standard 0.1” matrix breadboard or stripboards. This is a board only, the SX1262 module is not supplied. 8 | 9 | The antenna connection can be either a simple wire, U.FL connector or an edge SMA socket. The boards are supplied with the 0.1" pins un-soldered, leaving you the option of how to assemble or use the board in a project. 10 | This board can be used with the Easy mikroBUS™ Pro Mini controller available in this shop. 11 | 12 | The NiceRF SX1262 module is fitted with a TCXO which means that you can use LoRa® at the low bandwidths such as 7.8khz, this is far lower than 62.5khz which tends to be the limit for the SX127x style LoRa® devices. 13 | 14 | **Do not operate the SX1262 module without an antenna.** 15 | 16 | **The SX1262 is a 3.3V supply and logic level device, do not use directly with 5V controller boards such as the Arduino UNO.** 17 | 18 | There are many examples for using this module for GPS trackers or sensors provided in an Arduino library at this link; [SX12XX Library](https://github.com/StuartsProjects/SX12XX-LoRa) 19 | 20 | The pin out of the board is below, the lora device pin names on the outside. 21 | 22 | https://github.com/StuartsProjects/Devices/tree/master/Breadboard%20Friendly%20DRF1278%20Board -------------------------------------------------------------------------------- /Breadboard Friendly NiceRF SX1280 Board/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly NiceRF SX1280 Board/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /Breadboard Friendly NiceRF SX1280 Board/NiceRF_SX1280_BBF_Board_Schematic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly NiceRF SX1280 Board/NiceRF_SX1280_BBF_Board_Schematic.jpg -------------------------------------------------------------------------------- /Breadboard Friendly NiceRF SX1280 Board/NiceRF_SX1280_Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly NiceRF SX1280 Board/NiceRF_SX1280_Schematic.pdf -------------------------------------------------------------------------------- /Breadboard Friendly NiceRF SX1280 Board/ReadMe.md: -------------------------------------------------------------------------------- 1 | ### Breadboard Friendly NiceRF SX1280 Board 2 | 3 | 4 | ![](/SX1280_BBF_Board.jpg) 5 | 6 | 7 | This is a board to adapt a 2.4Ghz NiceRF SX1280 LoRa module into a breadboard friendly format. The board will allow you to use your SX1280 module with a standard 0.1” matrix breadboard or strip board. This is a board only, no SX1280 module is supplied. 8 | 9 | The SX1280 module has the ability to measure distances between a pair of devices, one as master the other as slave. This ‘ranging’ ability works from a few tens of meters up to circa 85km, see here; 10 | 11 | **[2.4Ghz NiceRF SX1280 LoRa® Balloon Tracker - 85km Achieved](https://stuartsprojects.github.io/2019/10/07/2-4ghz-nicerf-sx1280-lora-balloon-tracker-85km-achieved.html)** 12 | 13 | The SX1280 module has edge connectors for an SMA or u.FL connector. Alternatively a simple bit of wire 3.15cm long will do. The boards are supplied with the 0.1" pins unsoldered, leaving you the option of how to assemble or use the board in a project. 14 | This board can be used with the Easy mikroBUS™ Pro Mini controller available in this shop. 15 | 16 | The NiceRF SX1280 is a 3.3V supply and 3.3V logic level device, do not use directly with 5V controller boards such as the Arduino UNO. 17 | The pinout of the board is below, the module pins on the outside. 18 | 19 | 20 | ![](/NiceRF_SX1280_BBF_Board_Schematic.jpg) 21 | 22 | 23 | There are many examples for using these boards for GPS trackers or sensors provided in an Arduino the library here; 24 | 25 | **[https://github.com/StuartsProjects/SX12XX-LoRa](https://github.com/StuartsProjects/SX12XX-LoRa)** 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Breadboard Friendly NiceRF SX1280 Board/SX1280_BBF_Board.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly NiceRF SX1280 Board/SX1280_BBF_Board.jpg -------------------------------------------------------------------------------- /Breadboard Friendly RFM95 RFM96 RFM98 Board/Hope_RFM9X_BBF_Board.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly RFM95 RFM96 RFM98 Board/Hope_RFM9X_BBF_Board.jpg -------------------------------------------------------------------------------- /Breadboard Friendly RFM95 RFM96 RFM98 Board/Hope_RFM9X_BBF_Board.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly RFM95 RFM96 RFM98 Board/Hope_RFM9X_BBF_Board.pdf -------------------------------------------------------------------------------- /Breadboard Friendly RFM95 RFM96 RFM98 Board/Hope_RFM9X_BBF_Board_Schematic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly RFM95 RFM96 RFM98 Board/Hope_RFM9X_BBF_Board_Schematic.jpg -------------------------------------------------------------------------------- /Breadboard Friendly RFM95 RFM96 RFM98 Board/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly RFM95 RFM96 RFM98 Board/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /Breadboard Friendly RFM95 RFM96 RFM98 Board/Product Description.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Breadboard Friendly RFM95 RFM96 RFM98 Board/Product Description.pdf -------------------------------------------------------------------------------- /Breadboard Friendly RFM95 RFM96 RFM98 Board/ReadMe.md: -------------------------------------------------------------------------------- 1 | ### Breadboard Friendly Hope RFM95 RFM96 RFM98 Board 2 | 3 | 4 | ![](Hope_RFM9X_BBF_Board.jpg) 5 | 6 | 7 | This is a board to adapt your Hope RFM9x LoRa® module into a breadboard friendly format. The board will allow you to use the RFM9x with a standard 0.1” matrix breadboard or stripboards. This is a board only, the RFM9x module is not supplied. 8 | 9 | The antenna connection can be either a simple wire, U.FL connector or an edge SMA socket. The boards are supplied with the 0.1" pins un-soldered, leaving you the option of how to assemble or use the board in a project. 10 | This board can be used with the Easy mikroBUS™ Pro Mini controller available in this shop. 11 | 12 | **Do not operate the RFM9x module without an antenna.** 13 | 14 | **The RFM9x is a 3.3V supply and logic level device, do not use directly with 5V controller boards such as the Arduino UNO.** 15 | 16 | There are many examples for using this module for GPS trackers or sensors provided in an Arduino library at this link; **[SX12XX Library](https://github.com/StuartsProjects/SX12XX-LoRa)** 17 | 18 | The pin out of the board is below, the lora device pin names on the outside. 19 | 20 | ![](Hope_RFM9X_BBF_Board_Schematic.jpg) -------------------------------------------------------------------------------- /Brompton/Modified_Gline.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Brompton/Modified_Gline.jpg -------------------------------------------------------------------------------- /Brompton/OmniWheel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Brompton/OmniWheel.jpg -------------------------------------------------------------------------------- /Brompton/eBrompton Build.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Brompton/eBrompton Build.pdf -------------------------------------------------------------------------------- /Brompton/eBrompton Tools.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Brompton/eBrompton Tools.pdf -------------------------------------------------------------------------------- /CycleAlarm/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/CycleAlarm/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /CycleAlarm/MicroControllerPCB_Bottom.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/CycleAlarm/MicroControllerPCB_Bottom.pdf -------------------------------------------------------------------------------- /CycleAlarm/MicroControllerPCB_Top.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/CycleAlarm/MicroControllerPCB_Top.pdf -------------------------------------------------------------------------------- /CycleAlarm/MicroControllerSchematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/CycleAlarm/MicroControllerSchematic.pdf -------------------------------------------------------------------------------- /CycleAlarm/Readme.md: -------------------------------------------------------------------------------- 1 | ## Cycle Alarm Extender 2 | 3 | This is the repository for the programs and files for the cycle alarm extender described in this article; 4 | 5 | [**https://stuartsprojects.github.io/2022/09/08/Cycle-Alarm-Extender.html**](https://stuartsprojects.github.io/2022/09/08/Cycle-Alarm-Extender.html) 6 | 7 | 8 | ## Example programs 9 | 10 | The programs in this repository are provided so that you can test the board you have built, the fully working transmitter and receiver programs are also provided. 11 | 12 | ### 1\_Blink\_and\_Buzz 13 | 14 | Tests that the external LED and buzzer for the alarm receiver are working 15 | 16 | ### 2\_Battery\_Voltage\_Read\_Test 17 | 18 | To save power when the transmitter is in sleep mode the resistor divider that is used to read the battery voltage is turned off with a MOSFET. This program tests the circuit is working and allows the voltage reference in the micro controller to be calibrated. 19 | 20 | ### 3\_LoRa\_Transmitter 21 | 22 | Simple LoRa transmitter to test the LoRa device is working. 23 | 24 | ### 4\_LoRa\_Receiver 25 | 26 | Simple LoRa receiver to test the LoRa device is working. 27 | 28 | ### 5\_Alarm\_Transmitter 29 | 30 | The working transmitter program for the micro controller wired up to the alarm. 31 | 32 | ### 6\_Alarm\_Receiver 33 | 34 | The working receiver program that will flash an LED and sound a buzzer when an alarm packet is received. 35 | 36 | ### 7\_Alarm\_Simulator\_Transmitter 37 | 38 | Simulates the operation of the alarm transmitter and allows the receiver to be tested without the alarm horn sounding. 39 | 40 | ### 8\_Lilygo\_TBeam\_LoRa\_Receiver 41 | 42 | A functional receiver program for the Lilygo TBeam board. This board is ESP32 based and has a LoRa device, display and battery. 43 | 44 | 45 | 46 |
47 |
48 | 49 | #### Stuart Robinson 50 | #### September 2022 51 | -------------------------------------------------------------------------------- /Easy Pro Mini/EMPM1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/EMPM1.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/EMPM12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/EMPM12.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/EMPM13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/EMPM13.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Easy Mikrobus Pro Mini Full Parts List.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Easy Mikrobus Pro Mini Full Parts List.xls -------------------------------------------------------------------------------- /Easy Pro Mini/Easy Pro Mini - Build.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Easy Pro Mini - Build.pdf -------------------------------------------------------------------------------- /Easy Pro Mini/Easy Pro Mini - Kit List.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Easy Pro Mini - Kit List.xls -------------------------------------------------------------------------------- /Easy Pro Mini/Easy Pro Mini PCB.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Easy Pro Mini PCB.pdf -------------------------------------------------------------------------------- /Easy Pro Mini/Easy Pro Mini Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Easy Pro Mini Schematic.pdf -------------------------------------------------------------------------------- /Easy Pro Mini/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/Breadboard_Friendly_Pinout.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/Breadboard_Friendly_Pinout.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/EMPM10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/EMPM10.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/EMPM11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/EMPM11.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/EMPM2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/EMPM2.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/EMPM3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/EMPM3.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/EMPM4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/EMPM4.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/EMPM5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/EMPM5.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/EMPM6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/EMPM6.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/EMPM7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/EMPM7.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/EMPM8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/EMPM8.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/EMPM9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/EMPM9.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/Easy Connector Pinout.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/Easy Connector Pinout.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/Easy_GPS_Tracker.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/Easy_GPS_Tracker.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/Easy_Remote_Control.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/Easy_Remote_Control.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/Easy_Sensor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/Easy_Sensor.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/LoRa_Breadboard_Friendly_Modules.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/LoRa_Breadboard_Friendly_Modules.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/Pro Mini Comparison.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/Pro Mini Comparison.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Pictures/ProMini_Comparison.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Pictures/ProMini_Comparison.jpg -------------------------------------------------------------------------------- /Easy Pro Mini/Product Description.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Easy Pro Mini/Product Description.pdf -------------------------------------------------------------------------------- /EasyBuildESP32/EasyBuildESP32 PCB.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/EasyBuildESP32 PCB.jpg -------------------------------------------------------------------------------- /EasyBuildESP32/EasyBuildESP32_PCB.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/EasyBuildESP32_PCB.pdf -------------------------------------------------------------------------------- /EasyBuildESP32/EasyBuildESP32_Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/EasyBuildESP32_Schematic.pdf -------------------------------------------------------------------------------- /EasyBuildESP32/Examples/10_I2C_FRAM_Memory_Test/I2C_Scanner.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------- 2 | // i2c_scanner 3 | // 4 | // Version 1 5 | // This program (or code that looks like it) 6 | // can be found in many places. 7 | // For example on the Arduino.cc forum. 8 | // The original author is not know. 9 | // Version 2, Juni 2012, Using Arduino 1.0.1 10 | // Adapted to be as simple as possible by Arduino.cc user Krodal 11 | // Version 3, Feb 26 2013 12 | // V3 by louarnold 13 | // Version 4, March 3, 2013, Using Arduino 1.0.3 14 | // by Arduino.cc user Krodal. 15 | // Changes by louarnold removed. 16 | // Scanning addresses changed from 0...127 to 1...119, 17 | // according to the i2c scanner by Nick Gammon 18 | // http://www.gammon.com.au/forum/?id=10896 19 | // Version 5, March 28, 2013 20 | // As version 4, but address scans now to 127. 21 | // A sensor seems to use address 120. 22 | // Version 6, November 27, 2015. 23 | // Added waiting for the Leonardo serial communication. 24 | // 25 | // 26 | // This sketch tests the standard 7-bit addresses 27 | // Devices with higher bit address might not be seen properly. 28 | // 29 | 30 | 31 | //#include 32 | 33 | 34 | void setup_I2CScan() 35 | { 36 | Wire.begin(); 37 | 38 | //Serial.begin(9600); 39 | Serial.println("I2C Scanner"); 40 | } 41 | 42 | 43 | void run_I2CScan() 44 | { 45 | byte error, address; 46 | int nDevices; 47 | 48 | Serial.println("Scanning for I2C Devices..."); 49 | 50 | nDevices = 0; 51 | for(address = 1; address < 127; address++ ) 52 | { 53 | // The i2c_scanner uses the return value of 54 | // the Write.endTransmisstion to see if 55 | // a device did acknowledge to the address. 56 | Wire.beginTransmission(address); 57 | error = Wire.endTransmission(); 58 | 59 | if (error == 0) 60 | { 61 | Serial.print("I2C device found at address 0x"); 62 | if (address<16) 63 | Serial.print("0"); 64 | Serial.println(address,HEX); 65 | 66 | nDevices++; 67 | } 68 | else if (error==4) 69 | { 70 | Serial.print("Unknown error at address 0x"); 71 | if (address<16) 72 | Serial.print("0"); 73 | Serial.println(address,HEX); 74 | } 75 | } 76 | if (nDevices == 0) 77 | Serial.println("No I2C devices found"); 78 | else 79 | Serial.println("Scanning done"); 80 | 81 | Wire.endTransmission(); 82 | } 83 | -------------------------------------------------------------------------------- /EasyBuildESP32/Examples/11_MPR121_3X4_Keypad_Test/11_MPR121_3X4_Keypad_Test.ino: -------------------------------------------------------------------------------- 1 | /* 2 | 3X4-MPR121-Capacitive-Touch-Keypad-Module 3 | Modified on 10 Jan 2021 4 | by Amir Mohammad Shojaee @ Electropeak 5 | Home 6 | 7 | based on Adafruit Library Example 8 | */ 9 | 10 | #include 11 | #include "Adafruit_MPR121.h" 12 | 13 | #ifndef _BV 14 | #define _BV(bit) (1 << (bit)) 15 | #endif 16 | 17 | // You can have up to 4 on one i2c bus but one is enough for testing! 18 | Adafruit_MPR121 cap = Adafruit_MPR121(); 19 | 20 | // Keeps track of the last pins touched 21 | // so we know when buttons are 'released' 22 | uint16_t lasttouched = 0; 23 | uint16_t currtouched = 0; 24 | 25 | void setup() { 26 | Serial.begin(115200); 27 | 28 | while (!Serial) { // needed to keep leonardo/micro from starting too fast! 29 | delay(10); 30 | } 31 | 32 | Serial.println("Adafruit MPR121 Capacitive Touch sensor test"); 33 | 34 | // Default address is 0x5A, if tied to 3.3V its 0x5B 35 | // If tied to SDA its 0x5C and if SCL then 0x5D 36 | if (!cap.begin(0x5A)) { 37 | Serial.println("MPR121 not found, check wiring?"); 38 | while (1); 39 | } 40 | Serial.println("MPR121 found!"); 41 | } 42 | 43 | void loop() { 44 | // Get the currently touched pads 45 | currtouched = cap.touched(); 46 | 47 | for (uint8_t i = 0; i < 12; i++) { 48 | // it if *is* touched and *wasnt* touched before, alert! 49 | if ((currtouched & _BV(i)) && !(lasttouched & _BV(i)) ) { 50 | Serial.print(i); Serial.print(" touched"); 51 | } 52 | // if it *was* touched and now *isnt*, alert! 53 | if (!(currtouched & _BV(i)) && (lasttouched & _BV(i)) ) { 54 | Serial.println(" released"); 55 | } 56 | } 57 | // reset our state 58 | lasttouched = currtouched; 59 | 60 | // comment out this line for detailed data from the sensor! 61 | return; 62 | 63 | // debugging info, what 64 | Serial.print("\t\t\t\t\t\t\t\t\t\t\t\t\t 0x"); Serial.println(cap.touched(), HEX); 65 | Serial.print("Filt: "); 66 | for (uint8_t i = 0; i < 12; i++) { 67 | Serial.print(cap.filteredData(i)); Serial.print("\t"); 68 | } 69 | Serial.println(); 70 | Serial.print("Base: "); 71 | for (uint8_t i = 0; i < 12; i++) { 72 | Serial.print(cap.baselineData(i)); Serial.print("\t"); 73 | } 74 | Serial.println(); 75 | 76 | // put a delay so it isn't overwhelming 77 | delay(100); 78 | } 79 | -------------------------------------------------------------------------------- /EasyBuildESP32/Examples/13_GPS_Echo/13_GPS_Echo.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 05/08/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Program Operation - This is a simple program to test a GPS. It reads characters from the GPS using 10 | a hardware serial port, Serial2, and then sends them (echoes) to the Arduino IDE serial monitor. 11 | 12 | If you get no data displayed on the serial monitor, the most likely cause is that you have the receive 13 | data pin connected incorrectly. 14 | 15 | At program start you should see '11_GPS_Echo Starting' in the serial monitor, if you dont the serial 16 | monitor baud rate is probably incorrectly set. If you then see data displayed on the serial terminal 17 | which appears to be random text with odd symbols its very likely you have the GPS serial baud rate set 18 | incorrectly. 19 | 20 | Serial monitor baud rate is set at 115200. 21 | 22 | *******************************************************************************************************/ 23 | 24 | #define RXDATA 16 //pin where data from GPS is received, default for Serial2, but can be changed 25 | #define TXDATA 17 //pin where data is sent to GPS, default for Serial2, but can be changed 26 | 27 | 28 | void loop() 29 | { 30 | while (Serial2.available()) 31 | { 32 | Serial.write(Serial2.read()); 33 | } 34 | } 35 | 36 | 37 | void setup() 38 | { 39 | Serial2.begin(9600, SERIAL_8N1, RXDATA, TXDATA); //serial for GPS 40 | 41 | Serial.begin(115200); 42 | Serial.println(); 43 | Serial.println("11_GPS_Echo Starting"); 44 | } 45 | -------------------------------------------------------------------------------- /EasyBuildESP32/Examples/15_Switch_Test/15_Switch_Test.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 04/08/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Program Operation - This program tests a series of switches, SWITCH1, SWITCH2 and SWITCH3. 10 | 11 | The switches are read in a loop, if a switch is pressed then a message prints to the serial monitor. 12 | 13 | Serial monitor baud rate is set at 115200. 14 | *******************************************************************************************************/ 15 | 16 | #define SWITCH1 0 //pin for SWITCH1 17 | #define SWITCH2 13 //pin for SWITCH2 18 | #define SWITCH3 4 //pin for SWITCH3 19 | 20 | 21 | void loop() 22 | { 23 | if (!digitalRead(SWITCH1)) 24 | { 25 | Serial.println(F("SWITCH1 Pressed")); 26 | } 27 | 28 | if (!digitalRead(SWITCH2)) 29 | { 30 | Serial.println(F("SWITCH2 Pressed")); 31 | } 32 | 33 | if (!digitalRead(SWITCH3)) 34 | { 35 | Serial.println(F("SWITCH3 Pressed")); 36 | } 37 | 38 | } 39 | 40 | 41 | void setup() 42 | { 43 | pinMode(SWITCH1, INPUT_PULLUP); //setup switch pin, ground to activate 44 | pinMode(SWITCH2, INPUT_PULLUP); //setup switch pin, ground to activate 45 | pinMode(SWITCH3, INPUT_PULLUP); //setup switch pin, ground to activate 46 | 47 | Serial.begin(115200); 48 | Serial.println(); 49 | Serial.println(__FILE__); 50 | Serial.println(); 51 | Serial.println(__TIME__); 52 | Serial.println(); 53 | Serial.println(__DATE__); 54 | Serial.println(); 55 | Serial.println(F("Waiting for switch press")); 56 | } 57 | -------------------------------------------------------------------------------- /EasyBuildESP32/Examples/15_Switch_Test/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 16/12/19 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | //******* Setup hardware pin definitions here ! *************** 9 | 10 | //These are the pin definitions for one of my own boards, the Easy Pro Mini, 11 | //be sure to change the definitions to match your own setup. Some pins such as DIO1, 12 | //DIO2, BUZZER may not be in used by this sketch so they do not need to be 13 | //connected and should be included and be set to -1. 14 | 15 | #define NSS 10 //select pin on LoRa device 16 | #define NRESET 9 //reset pin on LoRa device 17 | #define LED1 8 //on board LED, high for on 18 | #define DIO0 3 //DIO0 pin on LoRa device, used for RX and TX done 19 | #define DIO1 -1 //DIO1 pin on LoRa device, normally not used so set to -1 20 | #define DIO2 -1 //DIO2 pin on LoRa device, normally not used so set to -1 21 | #define SWITCH1 2 //switch pin, used to wake processor up 22 | 23 | #define LORA_DEVICE DEVICE_SX1278 //we need to define the device we are using 24 | 25 | 26 | //******* Setup LoRa Parameters Here ! *************** 27 | 28 | //LoRa Modem Parameters 29 | const uint32_t Frequency = 434000000; //frequency of transmissions in hertz 30 | const uint32_t Offset = 0; //offset frequency for calibration purposes 31 | 32 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 33 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 34 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 35 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting, normally set to auto 36 | 37 | const int8_t TXpower = 2; //LoRa transmit power in dBm 38 | 39 | const uint16_t packet_delay = 1000; //mS delay between packets 40 | 41 | #define TXBUFFER_SIZE 32 //RX buffer size 42 | 43 | 44 | -------------------------------------------------------------------------------- /EasyBuildESP32/Examples/16_LoRa_Packet_Logger_With_Display/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 18/07/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | //******* Setup hardware pin definitions here ! *************** 9 | 10 | //These are the pin definitions for one of my own boards based on a ATMega328 ProMini 11 | //be sure to change the definitions to match your own setup. 12 | 13 | #define NSS 5 //select pin on LoRa device 14 | #define NRESET 27 //reset pin on LoRa device 15 | #define DIO0 35 //DIO0 pin on LoRa device, used for RX and TX done 16 | 17 | #define SCK 18 //SPI SCK 18 | #define MOSI 23 //SPI MOSI 19 | #define MISO 19 //SPI MISO 20 | 21 | #define LORA_DEVICE DEVICE_SX1278 //we need to define the device we are using 22 | 23 | 24 | //******* Setup LoRa Parameters Here ! *************** 25 | 26 | //LoRa Modem Parameters 27 | const uint32_t Frequency = 434000000; //frequency of transmissions in hertz 28 | const uint32_t Offset = 0; //offset frequency for calibration purposes 29 | 30 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 31 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 32 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 33 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting, normally set to auto 34 | 35 | const uint32_t RXtimeoutmS = 60000; //RXtimeout in mS 36 | const uint8_t RXBUFFER_SIZE = 128; //RX buffer size 37 | 38 | const uint8_t LCD20x4_I2C_ADDRESS = 0x3F; //I2C address of PCF8574 controller on LCD, could be 0x27 or 0x3F 39 | -------------------------------------------------------------------------------- /EasyBuildESP32/Examples/17_MMC_SDfile_Transfer_Transmitter/$50SATL.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/Examples/17_MMC_SDfile_Transfer_Transmitter/$50SATL.JPG -------------------------------------------------------------------------------- /EasyBuildESP32/Examples/17_MMC_SDfile_Transfer_Transmitter/$50SATS.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/Examples/17_MMC_SDfile_Transfer_Transmitter/$50SATS.JPG -------------------------------------------------------------------------------- /EasyBuildESP32/Examples/17_MMC_SDfile_Transfer_Transmitter/$50SATT.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/Examples/17_MMC_SDfile_Transfer_Transmitter/$50SATT.JPG -------------------------------------------------------------------------------- /EasyBuildESP32/Examples/17_MMC_SDfile_Transfer_Transmitter/testfile.txt: -------------------------------------------------------------------------------- 1 |  2 |  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 3 |  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 4 |  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 5 |  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ -------------------------------------------------------------------------------- /EasyBuildESP32/Examples/4_LoRa_Transmitter/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 04/08/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | //******* Setup hardware pin definitions here ! *************** 9 | 10 | #define NSS 5 //select pin on LoRa device 11 | #define NRESET 27 //reset pin on LoRa device 12 | #define DIO0 35 //DIO0 pin on LoRa device, used for RX and TX done 13 | 14 | #define SCK 18 //SPI SCK 15 | #define MOSI 23 //SPI MOSI 16 | #define MISO 19 //SPI MISO 17 | 18 | #define LORA_DEVICE DEVICE_SX1278 //we need to define the device we are using 19 | 20 | 21 | //******* Setup LoRa Parameters Here ! *************** 22 | 23 | //LoRa Modem Parameters 24 | const uint32_t Frequency = 434000000; //frequency of transmissions in hertz 25 | const uint32_t Offset = 0; //offset frequency for calibration purposes 26 | 27 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 28 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 29 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 30 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting, normally set to auto 31 | 32 | const int8_t TXpower = 10; //LoRa transmit power in dBm 33 | 34 | const uint16_t packet_delay = 1000; //mS delay between packets 35 | -------------------------------------------------------------------------------- /EasyBuildESP32/Examples/5_LoRa_Receiver/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 04/08/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | //******* Setup hardware pin definitions here ! *************** 9 | 10 | #define NSS 5 //select pin on LoRa device 11 | #define NRESET 27 //reset pin on LoRa device 12 | #define LED1 33 //on board LED, high for on 13 | #define DIO0 35 //DIO0 pin on LoRa device, used for RX and TX done 14 | 15 | #define SCK 18 //SPI SCK 16 | #define MOSI 23 //SPI MOSI 17 | #define MISO 19 //SPI MISO 18 | 19 | #define LORA_DEVICE DEVICE_SX1278 //we need to define the device we are using 20 | 21 | 22 | //******* Setup LoRa Parameters Here ! *************** 23 | 24 | //LoRa Modem Parameters 25 | const uint32_t Frequency = 434000000; //frequency of transmissions in hertz 26 | const uint32_t Offset = 0; //offset frequency for calibration purposes 27 | 28 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 29 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 30 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 31 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting, normally set to auto 32 | 33 | const int8_t TXpower = 10; //LoRa transmit power in dBm 34 | const uint8_t RXBUFFER_SIZE = 255; //RX buffer size 35 | -------------------------------------------------------------------------------- /EasyBuildESP32/Examples/8_I2C_Scanner/8_I2C_Scanner.ino: -------------------------------------------------------------------------------- 1 | // -------------------------------------- 2 | // i2c_scanner 3 | // from: https://playground.arduino.cc/Main/I2cScanner/ 4 | 5 | // This sketch tests the standard 7-bit addresses 6 | // Devices with higher bit address might not be seen properly. 7 | 8 | 9 | #include 10 | uint16_t counter; 11 | 12 | #define SCL 21 //this is the default pin for Wire on a NodeMCU, but it can be changed 13 | #define SDA 22 14 | 15 | 16 | void setup() 17 | { 18 | Wire.begin(SCL, SDA); 19 | 20 | Serial.begin(115200); 21 | Serial.println(); 22 | Serial.println(__FILE__); 23 | Serial.println(); 24 | Serial.println(__TIME__); 25 | Serial.println(); 26 | Serial.println(__DATE__); 27 | Serial.println(); 28 | } 29 | 30 | 31 | void loop() 32 | { 33 | uint8_t error, address; 34 | int16_t nDevices; 35 | 36 | counter++; 37 | Serial.print(counter); 38 | Serial.println(F(" Scanning...")); 39 | 40 | nDevices = 0; 41 | for (address = 1; address < 127; address++ ) 42 | { 43 | // The i2c_scanner uses the return value of 44 | // the Write.endTransmisstion to see if 45 | // a device did acknowledge to the address. 46 | Wire.beginTransmission(address); 47 | error = Wire.endTransmission(); 48 | 49 | if (error == 0) 50 | { 51 | Serial.print(F("I2C device found at address 0x")); 52 | if (address < 16) 53 | Serial.print(F("0")); 54 | Serial.println(address, HEX); 55 | nDevices++; 56 | } 57 | else if (error == 4) 58 | { 59 | Serial.print(F("Unknown error at address 0x")); 60 | if (address < 16) 61 | Serial.print(F("0")); 62 | Serial.println(address, HEX); 63 | } 64 | } 65 | 66 | if (nDevices == 0) 67 | { 68 | Serial.println(F("No I2C devices found")); 69 | } 70 | else 71 | { 72 | Serial.println(); 73 | Serial.println(F("Done")); 74 | Serial.println(); 75 | } 76 | 77 | delay(5000); // wait 5 seconds for next scan 78 | } 79 | -------------------------------------------------------------------------------- /EasyBuildESP32/Gerber/NodeMCUShieldBasicWithLoRa.dri: -------------------------------------------------------------------------------- 1 | Generated by EAGLE CAM Processor 6.5.0 2 | 3 | Drill Station Info File: Y:/Data/WIP/NodeMCUShieldBasicWithLoRa/NodeMCUShieldBasicWithLoRa.dri 4 | 5 | Date : 15/07/2022 14:10:02 6 | Drills : generated 7 | Device : Excellon drill station 8 | 9 | Parameter settings: 10 | 11 | Tolerance Drill + : 0.00 % 12 | Tolerance Drill - : 0.00 % 13 | Rotate : no 14 | Mirror : no 15 | Optimize : no 16 | Auto fit : yes 17 | OffsetX : 0inch 18 | OffsetY : 0inch 19 | Layers : Drills Holes 20 | 21 | Drill File Info: 22 | 23 | Data Mode : Absolute 24 | Units : 1/10000 Inch 25 | 26 | Drills used: 27 | 28 | Code Size used 29 | 30 | T01 0.0130inch 34 31 | T02 0.0157inch 30 32 | T03 0.0197inch 1 33 | T04 0.0236inch 14 34 | T05 0.0276inch 53 35 | T06 0.0315inch 56 36 | T07 0.0320inch 8 37 | T08 0.0354inch 44 38 | T09 0.0394inch 20 39 | T10 0.0433inch 15 40 | T11 0.0472inch 19 41 | T12 0.0591inch 4 42 | T13 0.0787inch 5 43 | T14 0.0866inch 5 44 | T15 0.1181inch 1 45 | T16 0.1260inch 8 46 | 47 | Total number of drills: 317 48 | 49 | Plotfiles: 50 | 51 | Y:/Data/WIP/NodeMCUShieldBasicWithLoRa/NodeMCUShieldBasicWithLoRa.TXT 52 | -------------------------------------------------------------------------------- /EasyBuildESP32/Gerber/NodeMCUShieldBasicWithLoRa.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/Gerber/NodeMCUShieldBasicWithLoRa.zip -------------------------------------------------------------------------------- /EasyBuildESP32/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /EasyBuildESP32/images/EasyBuildESP32_Shield_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/images/EasyBuildESP32_Shield_1.jpg -------------------------------------------------------------------------------- /EasyBuildESP32/images/NodeMCU_Shield_10.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/images/NodeMCU_Shield_10.JPG -------------------------------------------------------------------------------- /EasyBuildESP32/images/NodeMCU_Shield_11.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/images/NodeMCU_Shield_11.JPG -------------------------------------------------------------------------------- /EasyBuildESP32/images/NodeMCU_Shield_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/images/NodeMCU_Shield_2.jpg -------------------------------------------------------------------------------- /EasyBuildESP32/images/NodeMCU_Shield_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/images/NodeMCU_Shield_3.jpg -------------------------------------------------------------------------------- /EasyBuildESP32/images/NodeMCU_Shield_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/images/NodeMCU_Shield_4.jpg -------------------------------------------------------------------------------- /EasyBuildESP32/images/NodeMCU_Shield_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/images/NodeMCU_Shield_5.jpg -------------------------------------------------------------------------------- /EasyBuildESP32/images/NodeMCU_Shield_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/images/NodeMCU_Shield_7.jpg -------------------------------------------------------------------------------- /EasyBuildESP32/images/NodeMCU_Shield_8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/images/NodeMCU_Shield_8.jpg -------------------------------------------------------------------------------- /EasyBuildESP32/images/WhiteBlock.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/EasyBuildESP32/images/WhiteBlock.JPG -------------------------------------------------------------------------------- /HAB2 Tracker RFM9x/Documentation.url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,11 3 | [InternetShortcut] 4 | URL=https://github.com/StuartsProjects/Devices/tree/master/HAB2%20Tracker%20RFM9x 5 | IDList= 6 | -------------------------------------------------------------------------------- /HAB2 Tracker RFM9x/Examples/Balloon_Tracker_Receiver/AFSKRTTY2_DL-Fldigi_Settings.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/HAB2 Tracker RFM9x/Examples/Balloon_Tracker_Receiver/AFSKRTTY2_DL-Fldigi_Settings.jpg -------------------------------------------------------------------------------- /HAB2 Tracker RFM9x/Examples/GPS_Echo/GPS_Echo.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 14/12/19 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Program Operation - This is a simple program to test a GPS. It reads characters from the GPS using 10 | software serial and sends them (echoes) to the IDE serial monitor. If your ever having problems with 11 | a GPS (or just think you are) use this program first. 12 | 13 | If you get no data displayed on the serial monitor, the most likely cause is that you have the receive 14 | data pin into the Arduino (RX) pin connected incorrectly. 15 | 16 | If the data displayed on the serial terminal appears to be random text with odd symbols its very 17 | likely you have the GPS serial baud rate set incorrectly. 18 | 19 | Note that not all pins on all Arduinos will work with software serial, see here; 20 | 21 | https://www.arduino.cc/en/Reference/softwareSerial 22 | 23 | Serial monitor baud rate is set at 115200. 24 | 25 | *******************************************************************************************************/ 26 | 27 | #define RXpin A3 //this is the pin that the Arduino will use to receive data from the GPS 28 | #define TXpin A2 //this is the pin that the Arduino can use to send data (commands) to the GPS - not used 29 | 30 | #include 31 | 32 | SoftwareSerial GPS(RXpin, TXpin); 33 | 34 | void loop() 35 | { 36 | while (GPS.available()) 37 | { 38 | Serial.write(GPS.read()); 39 | } 40 | } 41 | 42 | 43 | void setup() 44 | { 45 | GPS.begin(9600); 46 | Serial.begin(115200); 47 | Serial.println("GPS_Echo Starting"); 48 | } 49 | -------------------------------------------------------------------------------- /HAB2 Tracker RFM9x/HAB2 Balloon Tracker PCB.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/HAB2 Tracker RFM9x/HAB2 Balloon Tracker PCB.jpg -------------------------------------------------------------------------------- /HAB2 Tracker RFM9x/HAB2 Complete.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/HAB2 Tracker RFM9x/HAB2 Complete.jpg -------------------------------------------------------------------------------- /HAB2 Tracker RFM9x/HAB2 Minimum Parts Tracker Build.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/HAB2 Tracker RFM9x/HAB2 Minimum Parts Tracker Build.pdf -------------------------------------------------------------------------------- /HAB2 Tracker RFM9x/HAB2 Tracker RFM9x 150818 PCB.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/HAB2 Tracker RFM9x/HAB2 Tracker RFM9x 150818 PCB.pdf -------------------------------------------------------------------------------- /HAB2 Tracker RFM9x/HAB2 Tracker RFM9x Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/HAB2 Tracker RFM9x/HAB2 Tracker RFM9x Schematic.pdf -------------------------------------------------------------------------------- /HAB2 Tracker RFM9x/HAB2.url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,11 3 | [InternetShortcut] 4 | URL=https://github.com/StuartsProjects/HAB2 5 | IDList= 6 | HotKey=0 7 | -------------------------------------------------------------------------------- /HAB2 Tracker RFM9x/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/HAB2 Tracker RFM9x/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /HAB2 Tracker RFM9x/Readme.md: -------------------------------------------------------------------------------- 1 | ### HAB Tracker 2 RFM9x 2 | 3 | This is a board intended to be used as a low component count high altitude balloon tracker. The board uses a Hope RFM9x LoRa module and an Arduino Pro Mini (must be the 3.3V 8Mhz version) and a Ublox MAXM8Q GPS. 4 | 5 | This is a board only, the RFM9x, Arduino Pro Mini and Ublox MAXM8Q GPS. are not supplied. The 2mm pin headers for fitting the RFM9x are supplied. 6 | 7 | The completed tracker will transmits its location using the GPS co-ordinates and will be received over hundreds of kilometres when at altitudes above 2km or so. The tracker sends the tracker payload as FSK RTTY as well as LoRa so can be received with standard amateur radio equipment or a PC and SDR combination. The tracker also puts out a very long range location only packet, which is useful for searching for the landed balloon. 8 | 9 | When built following the instructions 'HAB2 Minimum Parts Tracker Build.pdf' the tracker when powered by two AAA lithium energizer batteries has an all up weight of circa 20g and is thus suitable for use with low cost foil party balloons filled with helium. 10 | 11 | There is sample balloon tracker software in the \examples folder of the at the documentation link. Other tracker software can be found at the SX12xx-LoRa library here; [https://github.com/StuartsProjects/SX12XX-LoRa](https://github.com/StuartsProjects/SX12XX-LoRa) 12 | 13 | The original code and instructions for the tracker PCB using a previous LoRa library is to be found here; 14 | 15 | [https://github.com/StuartsProjects/HAB2](https://github.com/StuartsProjects/HAB2 "https://github.com/StuartsProjects/HAB2") 16 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Examples for XIAO RP2040/15_GPS_Tracker_Transmitter/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 16/12/19 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | //******* Setup hardware pin definitions here ! *************** 9 | 10 | //These are the pin definitions for one of my own boards, the Easy Pro Mini, 11 | //be sure to change the definitiosn to match your own setup. 12 | 13 | #define NSS D3 //select pin on LoRa device 14 | #define NRESET D2 //reset pin on LoRa device 15 | #define DIO0 D1 //DIO0 pin on LoRa device, used for sensing RX and TX done 16 | 17 | //red on board LED is pin 17, green 16, blue 25 18 | #define RED1 17 19 | #define GREEN1 16 20 | #define BLUE1 25 21 | 22 | #define LORA_DEVICE DEVICE_SX1278 //this is the device we are using 23 | 24 | 25 | 26 | //******* Setup LoRa Parameters Here ! *************** 27 | 28 | //LoRa Modem Parameters 29 | const uint32_t Frequency = 434000000; //frequency of transmissions 30 | const uint32_t Offset = 0; //offset frequency for calibration purposes 31 | 32 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 33 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 34 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 35 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting 36 | 37 | const int8_t TXpower = 10; //LoRa TX power 38 | 39 | #define ThisNode '1' //a character that identifies this tracker 40 | 41 | //************************************************************************************************** 42 | // GPS Settings 43 | //************************************************************************************************** 44 | 45 | #define GPSBaud 9600 //GPS Baud rate 46 | 47 | #define WaitGPSFixSeconds 30 //time in seconds to wait for a new GPS fix 48 | #define WaitFirstGPSFixSeconds 120 //time to seconds to wait for the first GPS fix at startup 49 | #define Sleepsecs 15 //seconds between transmissions, this delay is used to set overall transmission cycle time 50 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Examples for XIAO RP2040/20_LoRa_SD_Packet_Logger_OLED/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 03/11/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | //******* Setup hardware pin definitions here ! *************** 9 | 10 | #define NSS D3 //select on LoRa device 11 | #define NRESET D2 //reset on LoRa device 12 | #define DIO0 D1 //DIO0 on LoRa device, used for RX and TX done 13 | #define SDCS D0 //CS pin for SD card 14 | 15 | //red on board LED is pin 17, green 16, blue 25 16 | #define RED1 17 17 | #define GREEN1 16 18 | #define BLUE1 25 19 | 20 | #define LORA_DEVICE DEVICE_SX1278 //this is the device we are using 21 | 22 | //******* Setup LoRa Test Parameters Here ! *************** 23 | 24 | //LoRa Modem Parameters 25 | const uint32_t Frequency = 434000000; //frequency of transmissions 26 | const uint32_t Offset = 0; //offset frequency for calibration purposes 27 | 28 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 29 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 30 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 31 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting 32 | 33 | const uint8_t RXBUFFER_SIZE = 255; //RX buffer size 34 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Examples for XIAO RP2040/9_GPS_Echo_Serial1/9_GPS_Echo_Serial1.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 03/11/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Tested on Seeeduino XIAO RP2040. 10 | 11 | Program Operation - This is a simple program to test a GPS connected to a Seeeduino XIAO RP2040. The 12 | program reads characters from the GPS through a UART serial port and sends (echoes) them to the IDE 13 | serial monitor. Connect the GPS RX pin to XIAO D6 (TX) and GPS TX pin to XIAO D7 (RX). 14 | 15 | Serial monitor baud rate is set at 115200. 16 | 17 | *******************************************************************************************************/ 18 | 19 | 20 | void loop() 21 | { 22 | while (Serial1.available()) 23 | { 24 | Serial.write(Serial1.read()); 25 | } 26 | } 27 | 28 | 29 | void setup() 30 | { 31 | Serial1.begin(9600); 32 | Serial.begin(115200); 33 | Serial.println("9_GPS_Echo_Serial1 Starting"); 34 | } 35 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Examples for XIAO SAMD21/10_GPS_Echo_Sercom2/10_GPS_Echo_Sercom2.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 05/10/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Tested on Seeeduino XIAO SAMD21. 10 | 11 | Program Operation - This is a simple program to test a GPS connected to a Seeeduino XIAO. The port 12 | normally used for I2C, pins A4 and A5 are re-configured to be a serial port. The program reads 13 | characters from the GPS using through a this serial port and sends (echoes) them to the IDE serial 14 | monitor. Connect the GPS TX pin to XIAO A5 (RX). 15 | 16 | Serial monitor baud rate is set at 115200. 17 | 18 | *******************************************************************************************************/ 19 | 20 | #include 21 | #include "wiring_private.h" //for pinPeripheral() function 22 | 23 | Uart Serial3(&sercom2, A5, A4, SERCOM_RX_PAD_1, UART_TX_PAD_0); 24 | 25 | volatile int serviceCount3 = 0; 26 | 27 | extern "C" 28 | { 29 | void SERCOM2_Handler(void) 30 | { 31 | serviceCount3++; //to check this handler is used 32 | Serial3.IrqHandler(); 33 | } 34 | } 35 | 36 | 37 | void loop() 38 | { 39 | if (Serial3.available()) 40 | { 41 | Serial.write(Serial3.read()); 42 | } 43 | } 44 | 45 | void setup() 46 | { 47 | Serial.begin(115200); 48 | Serial.println("10_GPS_Echo_Sercom2 Starting"); 49 | delay(2000); 50 | pinPeripheral(A3, PIO_SERCOM_ALT); 51 | pinPeripheral(A2, PIO_SERCOM_ALT); 52 | Serial3.begin(9600); 53 | } 54 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Examples for XIAO SAMD21/11_I2C_Scanner/11_I2C_Scanner.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 05/10/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Tested on Seeeduino XIAO SAMD21. 10 | 11 | Program Operation - This scans the I2C bus from address 1 to address 126 and reports if an I2C device 12 | is found. 13 | 14 | Serial monitor baud rate is set at 115200 15 | *******************************************************************************************************/ 16 | 17 | #include 18 | 19 | 20 | void loop() 21 | { 22 | uint8_t I2Cstatus, I2Caddress; 23 | int16_t I2Cdevicesfound; 24 | 25 | Serial.println("Checking"); 26 | 27 | I2Cdevicesfound = 0; 28 | 29 | for (I2Caddress = 1; I2Caddress < 127; I2Caddress++ ) 30 | { 31 | Wire.beginTransmission(I2Caddress); 32 | I2Cstatus = Wire.endTransmission(); 33 | 34 | if (I2Cstatus == 0) 35 | { 36 | Serial.print("I2C device at address 0x"); 37 | if (I2Caddress < 16) 38 | { 39 | Serial.print("0"); 40 | } 41 | Serial.println(I2Caddress, HEX); 42 | I2Cdevicesfound++; 43 | } 44 | else if (I2Cstatus == 4) 45 | { 46 | Serial.print("ERROR at I2Caddress 0x"); 47 | if (I2Caddress < 16) 48 | { 49 | Serial.print("0"); 50 | } 51 | Serial.println(I2Caddress, HEX); 52 | } 53 | } 54 | 55 | Serial.print("I2C devices found "); 56 | Serial.println(I2Cdevicesfound); 57 | Serial.println(); 58 | delay(5000); 59 | } 60 | 61 | 62 | void setup() 63 | { 64 | Wire.begin(); 65 | Serial.begin(115200); 66 | Serial.println("11_I2C_Scanner starting"); 67 | Serial.println(); 68 | } 69 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Examples for XIAO SAMD21/16_GPS_Tracker_Receiver_With_Display_and_GPS/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 16/12/19 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | 9 | //******* Setup hardware pin definitions here ! *************** 10 | 11 | //These are the pin definitions for one of my own boards, the Easy Pro Mini, 12 | //be sure to change the definitiosn to match your own setup. 13 | 14 | #define NSS A3 //select on LoRa device 15 | #define NRESET A2 //reset on LoRa device 16 | #define DIO0 A1 //DIO0 on LoRa device, used for RX and TX done 17 | #define LED1 13 //On board LED, low for on 18 | 19 | #define GPSPOWER -1 //Pin that controls power to GPS, set to -1 if not used 20 | #define GPSONSTATE LOW //logic level to turn GPS on via pin GPSPOWER 21 | #define GPSOFFSTATE HIGH //logic level to turn GPS off via pin GPSPOWER 22 | 23 | #define LORA_DEVICE DEVICE_SX1278 //this is the device we are using 24 | 25 | //******* Setup LoRa Test Parameters Here ! *************** 26 | 27 | //LoRa Modem Parameters 28 | const uint32_t Frequency = 434000000; //frequency of transmissions 29 | const uint32_t Offset = 0; //offset frequency for calibration purposes 30 | 31 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 32 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 33 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 34 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting 35 | 36 | const int8_t TXpower = 10; //LoRa transmit power in dBm 37 | 38 | 39 | //************************************************************************************************** 40 | // GPS Settings 41 | //************************************************************************************************** 42 | 43 | #define GPSBaud 9600 //GPS Baud rate 44 | 45 | #define NoRXGPSfixms 15000 //max number of mS to allow before no local GPS fix flagged 46 | #define DisplayRate 7 //when working OK the GPS will get a new fix every second or so 47 | //this rate defines how often the display should be updated 48 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Examples for XIAO SAMD21/17_BME280_Sensor_Transmitter/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 18/10/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | // ******* Setup hardware pin definitions here ! *************** 9 | 10 | #define NSS A3 //select pin on LoRa device, matching D3 pins not recognised ? 11 | #define NRESET A2 //reset pin on LoRa device 12 | #define DIO0 A1 //DIO0 pin on LoRa device, used for sensing RX and TX done 13 | #define LED1 13 //on board LED, yellow 14 | #define ADMultiplier 1.628 //adjustment to convert AD value read into mV of battery voltage 15 | #define SupplyAD A0 //Resitor divider for battery voltage read connected here 16 | 17 | #define LORA_DEVICE DEVICE_SX1278 //this is the device we are using 18 | 19 | // ******* Setup LoRa Parameters Here ! *************** 20 | 21 | //LoRa Modem Parameters 22 | const uint32_t Frequency = 434000000; //frequency of transmissions in hertz 23 | const uint32_t Offset = 0; //offset frequency for calibration purposes 24 | 25 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 26 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 27 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 28 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting 29 | const int8_t TXpower = 10; //LoRa transmit power in dBm 30 | 31 | const uint16_t NetworkID = 0x3210; //NetworkID identifies this connection, needs to match value in receiver 32 | const uint8_t ThisNode = 49; //source node 49 = '1' 33 | const uint16_t TXattempts = 5; //number of times to transmit packet and wait for an acknowledge 34 | const uint32_t SleepSeconds = 60; //number of seconds spent asleep 35 | const uint32_t ACKtimeout = 1000; //Acknowledge timeout in mS 36 | const uint32_t TXtimeout = 5000; //transmit timeout in mS. If 0 return from transmit function after send. 37 | 38 | const uint8_t BME280_ADDRESS = 0x76; //I2C bus address of BME280 39 | const uint8_t BME280_REGISTER_CONTROL = 0xF4; //BME280 register number for power control 40 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Examples for XIAO SAMD21/18_BME280_Sensor_Receiver/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 18/10/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | // ******* Setup hardware pin definitions here ! *************** 9 | 10 | #define NSS A3 //select pin on LoRa device, matching D3 pins not recognised ? 11 | #define NRESET A2 //reset pin on LoRa device 12 | #define DIO0 A1 //DIO0 pin on LoRa device, used for sensing RX and TX done 13 | #define LED1 13 //on board LED, yellow 14 | 15 | #define LORA_DEVICE DEVICE_SX1278 //this is the device we are using 16 | 17 | // ******* Setup LoRa Parameters Here ! *************** 18 | 19 | //LoRa Modem Parameters 20 | const uint32_t Frequency = 434000000; //frequency of transmissions in hertz 21 | const uint32_t Offset = 0; //offset frequency for calibration purposes 22 | 23 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 24 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 25 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 26 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting 27 | const int8_t TXpower = 10; //LoRa transmit power in dBm 28 | 29 | const uint32_t ACKdelay = 100; //delay in mS before sending acknowledge 30 | const uint32_t RXtimeout = 60000; //receive timeout in mS. 31 | 32 | const uint16_t NetworkID = 0x3210; //NetworkID identifies this connection, needs to match value in receiver 33 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Examples for XIAO SAMD21/1_LED_Blink/1_LED_Blink.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 05/10/22 3 | 4 | This programs is supplied as is, it is up to the user of the program to decide if the programs are 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Tested on Seeeduino XIAO SAMD21. 10 | 11 | The XIAO pin 13 LED, is blinked. The blinks should be close to one per second. Messages are sent to the 12 | Serial Monitor also. 13 | 14 | Serial monitor baud rate is set at 115200. 15 | *******************************************************************************************************/ 16 | 17 | #define LED1 13 //on board LED is yellow 18 | 19 | uint16_t seconds; //used to display time elapsed on Serial Monitor 20 | 21 | 22 | void loop() 23 | { 24 | Serial.print(seconds); 25 | Serial.println(F(" Seconds")); //this message should print on console at close to once per second 26 | seconds++; 27 | digitalWrite(LED1, LOW); 28 | delay(100); 29 | digitalWrite(LED1, HIGH); 30 | delay(890); //should give approx 1 second flash 31 | } 32 | 33 | 34 | void led_Flash(uint16_t flashes, uint16_t delaymS) 35 | { 36 | //general purpose routine for flashing LED as indicator 37 | uint16_t index; 38 | 39 | for (index = 1; index <= flashes; index++) 40 | { 41 | digitalWrite(LED1, HIGH); //board LED on 42 | delay(delaymS); 43 | digitalWrite(LED1, LOW); //board LED off 44 | delay(delaymS); 45 | } 46 | } 47 | 48 | 49 | void setup() 50 | { 51 | pinMode(LED1, OUTPUT); //setup board LED pin as output 52 | digitalWrite(LED1, HIGH); 53 | led_Flash(10, 125); //10 quick LED flashes to indicate program start 54 | delay(2000); 55 | 56 | Serial.begin(115200); 57 | Serial.println(); 58 | Serial.println(F("1_LED_Blink Starting")); 59 | } 60 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Examples for XIAO SAMD21/20_LoRa_SD_Packet_Logger_OLED/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 18/10/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | //******* Setup hardware pin definitions here ! *************** 9 | 10 | #define NSS A3 //select on LoRa device 11 | #define NRESET A2 //reset on LoRa device 12 | #define DIO0 A1 //DIO0 on LoRa device, used for RX and TX done 13 | #define LED1 13 //On board LED, high for on 14 | #define SDCS A0 //CS pin for SD card 15 | 16 | #define LORA_DEVICE DEVICE_SX1278 //this is the device we are using 17 | 18 | //******* Setup LoRa Test Parameters Here ! *************** 19 | 20 | //LoRa Modem Parameters 21 | const uint32_t Frequency = 434000000; //frequency of transmissions 22 | const uint32_t Offset = 0; //offset frequency for calibration purposes 23 | 24 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 25 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 26 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 27 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting 28 | 29 | const uint8_t RXBUFFER_SIZE = 255; //RX buffer size 30 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Examples for XIAO SAMD21/21_I2C_20x4_LCD_Test/21_I2C_20x4_LCD_Test.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 28/10/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /************************************************************************************************************** 9 | Tested on Seeeduino XIAO SAMD21. 10 | 11 | Program operation - This is a test program for a 3.3V 20x4 LCD display with HD44870 controller driven via the 12 | PCF8563 I2C I\O expander. These are back packs that fit on the LCD display are readily available at low cost. 13 | 14 | First the program scans the I2C bus for devices, it should report a device found at 0x3F, this is the PCF8563. 15 | 16 | Then you should see this as the text on the LCD, assuming you have adjusted the contrast correctly. 17 | 18 | StuartsProjects 19 | I2C LCD Backpack 20 | 0123456789ABCDEFGHIJ 21 | Last Line of Text 22 | 23 | *****************************************************************************************************************/ 24 | 25 | 26 | #include 27 | #include //www.4tronix.co.uk/arduino/sketches/LiquidCrystal_V1.2.1.zip 28 | #include "I2C_Scanner.h" 29 | 30 | #define PCF8574Address 0x3F //address of PCF8574 can change, I have noted addresses of 0x27 and 0x3F 31 | 32 | LiquidCrystal_I2C disp(PCF8574Address, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //Set the LCD I2C address and pins used 33 | 34 | 35 | void loop() 36 | { 37 | screen1(); 38 | delay(2000); 39 | disp.clear(); 40 | } 41 | 42 | 43 | void screen1() 44 | { 45 | disp.setCursor(0, 0); //Start at character 4 on line 0 46 | disp.print("StuartsProjects"); 47 | delay(500); 48 | disp.setCursor(0, 1); 49 | disp.print("I2C LCD Backpack"); //Print text on 2nd Line 50 | delay(500); 51 | disp.setCursor(0, 2); 52 | disp.print("0123456789ABCDEFGHIJ"); //Print 20 characters on 3rd line 53 | delay(500); 54 | disp.setCursor(0, 3); 55 | disp.print("Last Line of Text"); 56 | } 57 | 58 | 59 | void setup() 60 | { 61 | Serial.begin(115200); 62 | Serial.println(); 63 | Serial.println(__FILE__); 64 | Serial.println(); 65 | 66 | setup_I2CScan(); 67 | run_I2CScan(); 68 | 69 | disp.begin(20, 4); //initialize the lcd for 20 chars 4 lines, turn on backlight 70 | disp.backlight(); //backlight on 71 | } 72 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Examples for XIAO SAMD21/21_I2C_20x4_LCD_Test/I2C_Scanner.h: -------------------------------------------------------------------------------- 1 | // -------------------------------------- 2 | // i2c_scanner 3 | // 4 | // Version 1 5 | // This program (or code that looks like it) 6 | // can be found in many places. 7 | // For example on the Arduino.cc forum. 8 | // The original author is not know. 9 | // Version 2, Juni 2012, Using Arduino 1.0.1 10 | // Adapted to be as simple as possible by Arduino.cc user Krodal 11 | // Version 3, Feb 26 2013 12 | // V3 by louarnold 13 | // Version 4, March 3, 2013, Using Arduino 1.0.3 14 | // by Arduino.cc user Krodal. 15 | // Changes by louarnold removed. 16 | // Scanning addresses changed from 0...127 to 1...119, 17 | // according to the i2c scanner by Nick Gammon 18 | // http://www.gammon.com.au/forum/?id=10896 19 | // Version 5, March 28, 2013 20 | // As version 4, but address scans now to 127. 21 | // A sensor seems to use address 120. 22 | // Version 6, November 27, 2015. 23 | // Added waiting for the Leonardo serial communication. 24 | // 25 | // 26 | // This sketch tests the standard 7-bit addresses 27 | // Devices with higher bit address might not be seen properly. 28 | // 29 | 30 | 31 | //#include 32 | 33 | 34 | void setup_I2CScan() 35 | { 36 | Wire.begin(); 37 | 38 | //Serial.begin(9600); 39 | Serial.println("I2C Scanner"); 40 | } 41 | 42 | 43 | void run_I2CScan() 44 | { 45 | byte error, address; 46 | int nDevices; 47 | 48 | Serial.println("Scanning..."); 49 | 50 | nDevices = 0; 51 | for(address = 1; address < 127; address++ ) 52 | { 53 | // The i2c_scanner uses the return value of 54 | // the Write.endTransmisstion to see if 55 | // a device did acknowledge to the address. 56 | Wire.beginTransmission(address); 57 | error = Wire.endTransmission(); 58 | 59 | if (error == 0) 60 | { 61 | Serial.print("I2C device found at address 0x"); 62 | if (address<16) 63 | Serial.print("0"); 64 | Serial.println(address,HEX); 65 | 66 | nDevices++; 67 | } 68 | else if (error==4) 69 | { 70 | Serial.print("Unknown error at address 0x"); 71 | if (address<16) 72 | Serial.print("0"); 73 | Serial.println(address,HEX); 74 | } 75 | } 76 | if (nDevices == 0) 77 | Serial.println("No I2C devices found"); 78 | else 79 | Serial.println("done"); 80 | 81 | Wire.endTransmission(); 82 | } 83 | 84 | 85 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Examples for XIAO SAMD21/5_WakeUpOnExternalInterrupt/5_WakeUpOnExternalInterrupt.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 05/10/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Tested on Seeeduino XIAO SAMD21. 10 | 11 | Program Operation - This program puts an XIAO into deep sleep mode ready to be woken up by an external 12 | switch. In this example connect A6 to GND to wake the XIAO up from sleep. 13 | 14 | Serial monitor baud rate is set at 115200. 15 | *******************************************************************************************************/ 16 | #include "ArduinoLowPower.h" //get library here > https://github.com/arduino-libraries/ArduinoLowPower 17 | 18 | #define LED1 13 //on board LED, yellow 19 | #define SWITCH1 A6 //switch pin, used to wake processor up 20 | 21 | 22 | void loop() 23 | { 24 | Serial.println(F("Sleeping zzzzz....")); 25 | Serial.println(); 26 | Serial.flush(); 27 | delay(2000); 28 | digitalWrite(LED1, HIGH); //make sure LED off when in sleep 29 | 30 | LowPower.deepSleep(); 31 | 32 | led_Flash(10, 50); //10 quick LED flashes to indicate program re-start 33 | 34 | Serial.println(F("Awake !")); 35 | Serial.flush(); 36 | led_Flash(60, 500); //60 1 second LED flashes to indicate program awake 37 | } 38 | 39 | 40 | void wakeUp() 41 | { 42 | //handler for the interrupt 43 | } 44 | 45 | 46 | void led_Flash(uint16_t flashes, uint16_t delaymS) 47 | { 48 | uint16_t index; 49 | for (index = 1; index <= flashes; index++) 50 | { 51 | digitalWrite(LED1, LOW); 52 | delay(delaymS); 53 | digitalWrite(LED1, HIGH); 54 | delay(delaymS); 55 | } 56 | } 57 | 58 | 59 | void setup() 60 | { 61 | pinMode(SWITCH1, INPUT_PULLUP); 62 | pinMode(LED1, OUTPUT); 63 | 64 | led_Flash(2, 125); //two quick LED flashes to indicate program start 65 | 66 | Serial.begin(115200); 67 | Serial.println(); 68 | Serial.println(F("5_WakeUpOnExternalInterrupt Starting")); 69 | 70 | LowPower.attachInterruptWakeup(SWITCH1, wakeUp, CHANGE); //setup interrupt for wake up 71 | } 72 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Examples for XIAO SAMD21/5_WakeUpOnExternalInterrupt/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 16/12/19 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | //******* Setup hardware pin definitions here ! *************** 9 | 10 | 11 | #define NSS A3 //select pin on LoRa device, matching D3 pins not recognised ? 12 | #define NRESET A2 //reset pin on LoRa device 13 | #define DIO0 A0 //DIO0 pin on LoRa device, used for sensing RX and TX done 14 | 15 | 16 | 17 | #define LORA_DEVICE DEVICE_SX1278 //we need to define the device we are using 18 | 19 | //******* Setup LoRa Parameters Here ! *************** 20 | 21 | //LoRa Modem Parameters 22 | const uint32_t Frequency = 434000000; //frequency of transmissions in hertz 23 | const uint32_t Offset = 0; //offset frequency for calibration purposes 24 | 25 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 26 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 27 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 28 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting, normally set to auto 29 | 30 | const int8_t TXpower = 2; //LoRa transmit power in dBm 31 | 32 | const uint16_t packet_delay = 1000; //mS delay between packets 33 | 34 | #define TXBUFFER_SIZE 32 //RX buffer size 35 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Examples for XIAO SAMD21/7_LoRa_Transmitter_Sleep_Switch_Wakeup/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 05/10/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | //******* Setup hardware pin definitions here ! *************** 9 | 10 | 11 | #define NSS A3 //select pin on LoRa device, matching D3 pins not recognised ? 12 | #define NRESET A2 //reset pin on LoRa device 13 | #define DIO0 A1 //DIO0 pin on LoRa device, used for sensing RX and TX done 14 | #define LED1 13 //on board LED, yellow 15 | #define SWITCH1 A6 //switch pin, used to wake processor up 16 | 17 | #define LORA_DEVICE DEVICE_SX1278 //we need to define the device we are using 18 | 19 | //******* Setup LoRa Parameters Here ! *************** 20 | 21 | //LoRa Modem Parameters 22 | const uint32_t Frequency = 434000000; //frequency of transmissions in hertz 23 | const uint32_t Offset = 0; //offset frequency for calibration purposes 24 | 25 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 26 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 27 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 28 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting, normally set to auto 29 | 30 | const int8_t TXpower = 2; //LoRa transmit power in dBm 31 | 32 | const uint16_t packet_delay = 1000; //mS delay between packets 33 | 34 | #define TXBUFFER_SIZE 32 //RX buffer size 35 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Examples for XIAO SAMD21/8_LoRa_Transmitter_Sleep_RTC_Wakeup/Settings.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 16/12/19 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | //******* Setup hardware pin definitions here ! *************** 9 | 10 | 11 | #define NSS A3 //select pin on LoRa device, matching D3 pins not recognised ? 12 | #define NRESET A2 //reset pin on LoRa device 13 | #define DIO0 A0 //DIO0 pin on LoRa device, used for sensing RX and TX done 14 | #define LED1 13 //on board LED, yellow 15 | #define SWITCH1 A6 //switch pin, used to wake processor up 16 | 17 | #define LORA_DEVICE DEVICE_SX1278 //we need to define the device we are using 18 | 19 | //******* Setup LoRa Parameters Here ! *************** 20 | 21 | //LoRa Modem Parameters 22 | const uint32_t Frequency = 434000000; //frequency of transmissions in hertz 23 | const uint32_t Offset = 0; //offset frequency for calibration purposes 24 | 25 | const uint8_t Bandwidth = LORA_BW_125; //LoRa bandwidth 26 | const uint8_t SpreadingFactor = LORA_SF7; //LoRa spreading factor 27 | const uint8_t CodeRate = LORA_CR_4_5; //LoRa coding rate 28 | const uint8_t Optimisation = LDRO_AUTO; //low data rate optimisation setting, normally set to auto 29 | 30 | const int8_t TXpower = 2; //LoRa transmit power in dBm 31 | 32 | const uint16_t packet_delay = 1000; //mS delay between packets 33 | 34 | #define TXBUFFER_SIZE 32 //RX buffer size 35 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Examples for XIAO SAMD21/9_GPS_Echo_Serial1/9_GPS_Echo_Serial1.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 05/10/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Tested on Seeeduino XIAO SAMD21. 10 | 11 | Program Operation - This is a simple program to test a GPS connected to a Seeeduino XIAO. The program 12 | reads characters from the GPS through a UART serial port and sends (echoes) them to the IDE serial 13 | monitor. Connect the GPS RX pin to XIAO A6 (TX) and GPS TX pin to XIAO A7 (RX). 14 | 15 | Serial monitor baud rate is set at 115200. 16 | 17 | *******************************************************************************************************/ 18 | 19 | 20 | void loop() 21 | { 22 | while (Serial1.available()) 23 | { 24 | Serial.write(Serial1.read()); 25 | } 26 | } 27 | 28 | 29 | void setup() 30 | { 31 | Serial1.begin(9600); 32 | Serial.begin(115200); 33 | Serial.println("9_GPS_Echo_Serial1 Starting"); 34 | } 35 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Handheld_XIAO_LoRa_Tranceiver_PCB.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Handheld_XIAO_LoRa_Tranceiver/Handheld_XIAO_LoRa_Tranceiver_PCB.jpg -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Handheld_XIAO_LoRa_Tranceiver_PCB.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Handheld_XIAO_LoRa_Tranceiver/Handheld_XIAO_LoRa_Tranceiver_PCB.pdf -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Handheld_XIAO_LoRa_Tranceiver_Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Handheld_XIAO_LoRa_Tranceiver/Handheld_XIAO_LoRa_Tranceiver_Schematic.pdf -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Handheld_XIAO_LoRa_Tranceiver/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/Readme.md: -------------------------------------------------------------------------------- 1 | ## Seeeduino XIAO SAMD21 2 | 3 | This is the repository for programs for the Seeeduino XIAO SAMD21 version, some of which use the SX127X-LoRa library. The XIAO SAMD21 is discussed in this article; 4 | 5 | 6 | [**https://stuartsprojects.github.io/2022/10/03/Seeeduino_XIAO.html**](https://stuartsprojects.github.io/2022/10/03/Seeeduino_XIAO.html) 7 | 8 | 9 | Note that the Arduino program examples use DIO0 on the RFM9X LoRa module to sense TX and RX done. To ensure that this pin is connected to the XIAO A1 pin you will need to fit a wire link in the D4 position. 10 | 11 | ### TTN LoRaWAN use 12 | 13 | If you want to use the board for TTN LoRaWAN, there are two choices; 14 | 15 | First you can fit diodes (1N4148) in the D4 and D2 positions and then configure the LMIC definition for the pins as; 16 | 17 | //Pins for Seeeduino XIAO SAMD21 18 | const lmic_pinmap lmic_pins = { 19 | .nss = A3, 20 | .rxtx = LMIC_UNUSED_PIN, 21 | .rst = A2, 22 | .dio = {A1, A1, LMIC_UNUSED_PIN}, 23 | }; 24 | 25 | This sharing of DIO0 and DIO1 onto one pin, A1, with diodes seems to work well enough. 26 | 27 | Or if you wish you can connect DIO0 and DIO1 onto seperate pins of the XIAO with links. If you fit a wire link in the D4 position and fit a wire link on LK2 (in the middle of D2) you can use this LMIC pin definition; 28 | 29 | 30 | //Pins for Seeeduino XIAO SAMD21 31 | const lmic_pinmap lmic_pins = { 32 | .nss = A3, 33 | .rxtx = LMIC_UNUSED_PIN, 34 | .rst = A2, 35 | .dio = {A1, A6, LMIC_UNUSED_PIN}, 36 | }; 37 | 38 | But note that you then loose the use of the serial port on the XIAO. 39 | 40 |
41 |
42 | 43 | #### Stuart Robinson 44 | #### October 2022 45 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/XIAO RP2040 Overview.url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,11 3 | [InternetShortcut] 4 | IDList= 5 | URL=https://wiki.seeedstudio.com/XIAO-RP2040/ 6 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/XIAO SAMD21 Getting Started.url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,11 3 | [InternetShortcut] 4 | IDList= 5 | URL=https://wiki.seeedstudio.com/Seeeduino-XIAO/#hardware 6 | -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/XIAO-RP2040-Pinout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Handheld_XIAO_LoRa_Tranceiver/XIAO-RP2040-Pinout.png -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/XIAO-SAMD21-Pinout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Handheld_XIAO_LoRa_Tranceiver/XIAO-SAMD21-Pinout.png -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/XIAO_with_LoRa_Portable1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Handheld_XIAO_LoRa_Tranceiver/XIAO_with_LoRa_Portable1.jpg -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/XIAO_with_LoRa_Portable2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Handheld_XIAO_LoRa_Tranceiver/XIAO_with_LoRa_Portable2.jpg -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/XIAO_with_LoRa_Portable3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Handheld_XIAO_LoRa_Tranceiver/XIAO_with_LoRa_Portable3.jpg -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/XIAO_with_LoRa_Portable5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Handheld_XIAO_LoRa_Tranceiver/XIAO_with_LoRa_Portable5.jpg -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/XIAO_with_LoRa_Portable6A.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Handheld_XIAO_LoRa_Tranceiver/XIAO_with_LoRa_Portable6A.jpg -------------------------------------------------------------------------------- /Handheld_XIAO_LoRa_Tranceiver/XIAO_with_LoRa_Portable6B.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Handheld_XIAO_LoRa_Tranceiver/XIAO_with_LoRa_Portable6B.jpg -------------------------------------------------------------------------------- /L70 L76 GPS Breakout/Build Instructions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/L70 L76 GPS Breakout/Build Instructions.pdf -------------------------------------------------------------------------------- /L70 L76 GPS Breakout/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/L70 L76 GPS Breakout/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /L70 L76 GPS Breakout/L70_L76_Breakout-_020819_Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/L70 L76 GPS Breakout/L70_L76_Breakout-_020819_Schematic.pdf -------------------------------------------------------------------------------- /L70 L76 GPS Breakout/L70_L76_Breakout_PCB.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/L70 L76 GPS Breakout/L70_L76_Breakout_PCB.pdf -------------------------------------------------------------------------------- /L70 L76 GPS Breakout/L70_L76_Breakout_Parts_List.csv: -------------------------------------------------------------------------------- 1 | Part,Value,Device,Description,,, 2 | ANT1,JTI+AF8-ANTENNA+AC0-1575AT43A40,JTI+AF8-ANTENNA+AC0-1575AT43A40,,,, 3 | ANT2,13MM+AF8-CERAMIC+AF8-PATCH,Antenna,Mounts,on,PCB,rear 4 | BAT/CAP,MS621FE,PCBBATTERY,,,, 5 | C1,4u7,SMT,805,,, 6 | C2,4u7,SMT,805,,, 7 | C3,4u7,SMT,805,,, 8 | C4,100nF,SMT,805,,, 9 | CONA,7X1,+ACI-7X1, 0.1+IB0-+ACI-,,,, 10 | D1,B0520,DIODE+AC0-SOD323+AC0-R,,,, 11 | L1,33nH,R+AC0-EU+AF8-R0603,,,, 12 | L70/76,L70GPS,L70GPS,,,, 13 | LED,RED,0805LED,,,, 14 | Q1,IRLML6402,PMOSFET,,,, 15 | Q2,2N7002,NMOSFET,,,, 16 | R1,47K,SMT,805,,, 17 | R2,2K2,SMT,805,,, 18 | R3,SOT,SMT,805,,, 19 | R4,1K,SMT,805,,, 20 | R5,220K,SMT,805,,, 21 | -------------------------------------------------------------------------------- /L70 L76 GPS Breakout/L70_L76_Breakout_Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/L70 L76 GPS Breakout/L70_L76_Breakout_Schematic.pdf -------------------------------------------------------------------------------- /L70 L76 GPS Breakout/L70_L76_GPS_Breakout.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/L70 L76 GPS Breakout/L70_L76_GPS_Breakout.jpg -------------------------------------------------------------------------------- /L70 L76 GPS Breakout/L70_L76_GPS_Ceramic_Antenna.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/L70 L76 GPS Breakout/L70_L76_GPS_Ceramic_Antenna.jpg -------------------------------------------------------------------------------- /L70 L76 GPS Breakout/L70_L76_GPS_PCB.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/L70 L76 GPS Breakout/L70_L76_GPS_PCB.jpg -------------------------------------------------------------------------------- /L70 L76 GPS Breakout/ReadMe.md: -------------------------------------------------------------------------------- 1 | ### Quectel L70 and L76 GPS Breakout Board 2 | 3 | This is a board that allows you to use a low cost Quectel L70 or L76 GPS to build a very light GPS board for use with your micro controller projects. With a simple wire antenna the board and GPS can weigh as little as 2g. You can also build the board with a small ceramic patch antenna and this weighs 5.9g. 4 | 5 | This is a board for the GPS only, you will need to supply your own GPS. 6 | 7 | In its simplest build all you need to do is solder the GPS module to the board, add a 7 pin 0.1” header, a bit of stiff wire for an antenna and make two links. 8 | 9 | The Quectel GPSs can be put into 'balloon' mode so that it operates up to 80km altitude. There are examples of this configuration in the tracker applications in this library; 10 | 11 | [SX12XX_Library](https://github.com/StuartsProjects/SX12XX-LoRa) 12 | 13 | There are options you can add to the board; 14 | 15 | LED fix indicator 16 | 17 | Decoupling capacitors 18 | 19 | GPS backup for hot fixing 20 | 21 | Lithium battery or super capacitor 22 | 23 | Power switching to turn the GPS off and save power 24 | 25 | The board uses 0805 sized surface mount components to keep the size and weight down. Previous experience of SMT assembly is essential and static precautions are needed when assembling and handling the Quectel GPS. All capacitors are ceramic chip types. 26 | 27 | **The assembled GPS module is for use on 3.3V microcontroller projects only** 28 | 29 | **Do not connect directly to 5V microcontrollers such as the Arduino UNO** 30 | 31 | The build instructions can be found be selecting the link below. 32 | 33 | **[Build Instructions](https://github.com/StuartsProjects/Devices/tree/master/L70%20L76%20GPS%20Breakout)** 34 | 35 | 36 | -------------------------------------------------------------------------------- /L80 L86 GPS Breakout/Build Instructions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/L80 L86 GPS Breakout/Build Instructions.pdf -------------------------------------------------------------------------------- /L80 L86 GPS Breakout/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/L80 L86 GPS Breakout/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /L80 L86 GPS Breakout/L80_L86 PCB.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/L80 L86 GPS Breakout/L80_L86 PCB.jpg -------------------------------------------------------------------------------- /L80 L86 GPS Breakout/L80_L86_Breakout.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/L80 L86 GPS Breakout/L80_L86_Breakout.jpg -------------------------------------------------------------------------------- /L80 L86 GPS Breakout/L80_L86_PCB.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/L80 L86 GPS Breakout/L80_L86_PCB.jpg -------------------------------------------------------------------------------- /L80 L86 GPS Breakout/L80_L86_PCB_Battery.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/L80 L86 GPS Breakout/L80_L86_PCB_Battery.jpg -------------------------------------------------------------------------------- /L80 L86 GPS Breakout/Parts List.csv: -------------------------------------------------------------------------------- 1 | Part,Value,Package,Description,,,,,,,,,, 2 | BAT1,CR1216,Battery,Holder,,,,,,,,,, 3 | C1,4u7,SMT,805,,,,,,,,,, 4 | C2,4u7,SMT,805,,,,,,,,,, 5 | C3,4u7,SMT,805,,,,,,,,,, 6 | CONA,7X1STD,7,X,0.1+IB0-,,,,,,,,, 7 | L1,BLUE,SMT,805,LED,,,,,,,,, 8 | GPS,L80,or,L86,Quectel,GPS,GPS,module,with,an,embedded,patch,antenna,(15mmx15mmx4mm) 9 | Q1,IRLML6402,PMOSFET,,,,,,,,,,, 10 | Q2,2N7002,NMOSFET,,,,,,,,,,, 11 | R1,1K,SMT,805,,,,,,,,,, 12 | R2,220K,SMT,805,,,,,,,,,, 13 | R3,2K2,SMT,805,,,,,,,,,, 14 | R4,47K,SMT,805,,,,,,,,,, 15 | -------------------------------------------------------------------------------- /L80 L86 GPS Breakout/Quectel L80 L86 Breakout PCB.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/L80 L86 GPS Breakout/Quectel L80 L86 Breakout PCB.pdf -------------------------------------------------------------------------------- /L80 L86 GPS Breakout/Quectel L80 L86 Breakout Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/L80 L86 GPS Breakout/Quectel L80 L86 Breakout Schematic.pdf -------------------------------------------------------------------------------- /L80 L86 GPS Breakout/ReadMe.md: -------------------------------------------------------------------------------- 1 | ### Quectel L80 and L86 GPS Breakout Board 2 | 3 | This is a board that allows you to use a low cost Quectel L80 or L80 GPS with your micro controller projects. In its simplest build all you need to do is solder the GPS module to the board, add a 4 pin 0.1” header and make two links. This is a board for the GPS only, you will need to supply your own GPS. 4 | 5 | There are options you can add to the board; 6 | 7 | LED fix indicator 8 | Extra decoupling capacitors 9 | Lithium backup battery 10 | Power switching to turn the GPS off and save power. 11 | 12 | The board uses 0805 sized surface mount components to keep the size and weight down. 13 | 14 | **The assembled GPS module is for use on 3.3V microcontroller projects only** 15 | 16 | **Do not connect directly to 5V microcontrollers such as the Arduino UNO.** 17 | 18 | The build instructions can be found be selecting the link below. 19 | 20 | [Build Instructions](https://github.com/StuartsProjects/Devices/tree/master/L80%20L86%20GPS%20Breakout) -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/071023_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/071023_1.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/1_LED_Blink/1_LED_Blink.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 12/01/23 3 | 4 | This programs is supplied as is, it is up to the user of the program to decide if the programs are 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Program Operation - This program blinks the White and Red LEDs on an ESP32CAM on pins 4 and 33 10 | respectivly. Note that for many of the LoRa programs for the ESP32CAM board the white LED on pin 4 11 | needs to be disabled. 12 | 13 | Serial monitor baud rate is set at 115200. 14 | *******************************************************************************************************/ 15 | 16 | #define WHITELED 4 //pin number for White LED, set logic level high for on 17 | #define REDLED 33 //pin number for Red LED, set logic level low for on 18 | 19 | uint16_t seconds; //used to display time elapsed on Serial Monitor 20 | 21 | 22 | void loop() 23 | { 24 | Serial.print(seconds); 25 | Serial.println(F(" Seconds")); //this message should print on console at close to once per second 26 | seconds++; 27 | digitalWrite(WHITELED, HIGH); 28 | digitalWrite(REDLED, LOW); 29 | delay(100); 30 | digitalWrite(WHITELED, LOW); 31 | digitalWrite(REDLED, HIGH); 32 | delay(900); //should give approx 1 second flash 33 | } 34 | 35 | 36 | void setup() 37 | { 38 | pinMode(WHITELED, OUTPUT); 39 | pinMode(REDLED, OUTPUT); 40 | 41 | Serial.begin(115200); 42 | Serial.println(); 43 | Serial.print(__FILE__); 44 | Serial.println(); 45 | 46 | Serial.println(F("1_LED_Blink Starting")); 47 | } 48 | -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_10.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_11.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_12.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_2.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_3.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_4.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_5.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_6.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/290922_7.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/ESP32CAM Long Range Wireless Adapter PCB Bottom.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/ESP32CAM Long Range Wireless Adapter PCB Bottom.pdf -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/ESP32CAM Long Range Wireless Adapter PCB Top.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/ESP32CAM Long Range Wireless Adapter PCB Top.pdf -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/ESP32CAM Long Range Wireless Adapter Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/ESP32CAM Long Range Wireless Adapter Schematic.pdf -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/ESP32CAM_26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/ESP32CAM_26.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/ESP32CAM_GPIO4_Transistor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 071023/ESP32CAM_GPIO4_Transistor.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/1_LED_Blink/1_LED_Blink.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 12/01/23 3 | 4 | This programs is supplied as is, it is up to the user of the program to decide if the programs are 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Program Operation - This program blinks the White and Red LEDs on an ESP32CAM on pins 4 and 33 10 | respectivly. Note that for many of the LoRa programs for the ESP32CAM board the white LED on pin 4 11 | needs to be disabled. 12 | 13 | Serial monitor baud rate is set at 115200. 14 | *******************************************************************************************************/ 15 | 16 | #define WHITELED 4 //pin number for White LED, set logic level high for on 17 | #define REDLED 33 //pin number for Red LED, set logic level low for on 18 | 19 | uint16_t seconds; //used to display time elapsed on Serial Monitor 20 | 21 | 22 | void loop() 23 | { 24 | Serial.print(seconds); 25 | Serial.println(F(" Seconds")); //this message should print on console at close to once per second 26 | seconds++; 27 | digitalWrite(WHITELED, HIGH); 28 | digitalWrite(REDLED, LOW); 29 | delay(100); 30 | digitalWrite(WHITELED, LOW); 31 | digitalWrite(REDLED, HIGH); 32 | delay(900); //should give approx 1 second flash 33 | } 34 | 35 | 36 | void setup() 37 | { 38 | pinMode(WHITELED, OUTPUT); 39 | pinMode(REDLED, OUTPUT); 40 | 41 | Serial.begin(115200); 42 | Serial.println(); 43 | Serial.print(__FILE__); 44 | Serial.println(); 45 | 46 | Serial.println(F("1_LED_Blink Starting")); 47 | } 48 | -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_1.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_10.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_11.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_12.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_2.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_3.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_4.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_5.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_6.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/290922_7.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/ESP32CAM Long Range Wireless Adapter PCB Bottom.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/ESP32CAM Long Range Wireless Adapter PCB Bottom.pdf -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/ESP32CAM Long Range Wireless Adapter PCB Top.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/ESP32CAM Long Range Wireless Adapter PCB Top.pdf -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/ESP32CAM Long Range Wireless Adapter Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/ESP32CAM Long Range Wireless Adapter Schematic.pdf -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/ESP32CAM_26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/ESP32CAM_26.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/ESP32CAM_GPIO4_Transistor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/ESP32CAM_GPIO4_Transistor.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x 290922/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x/1_LED_Blink/1_LED_Blink.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 29/01/22 3 | 4 | This programs is supplied as is, it is up to the user of the program to decide if the programs are 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Program Operation - This program blinks the White and Red LEDs on an ESP32CAM on pins 4 and 33 10 | respectivly. 11 | 12 | Serial monitor baud rate is set at 115200. 13 | *******************************************************************************************************/ 14 | 15 | #define WHITELED 4 //pin number for White LED, set logic level high for on 16 | #define REDLED 33 //pin number for Red LED, set logic level low for on 17 | 18 | uint16_t seconds; //used to display time elapsed on Serial Monitor 19 | 20 | 21 | void loop() 22 | { 23 | Serial.print(seconds); 24 | Serial.println(F(" Seconds")); //this message should print on console at close to once per second 25 | seconds++; 26 | digitalWrite(WHITELED, HIGH); 27 | digitalWrite(REDLED, LOW); 28 | delay(100); 29 | digitalWrite(WHITELED, LOW); 30 | digitalWrite(REDLED, HIGH); 31 | delay(900); //should give approx 1 second flash 32 | } 33 | 34 | 35 | void setup() 36 | { 37 | pinMode(WHITELED, OUTPUT); 38 | pinMode(REDLED, OUTPUT); 39 | 40 | Serial.begin(115200); 41 | Serial.println(); 42 | Serial.print(__FILE__); 43 | Serial.println(); 44 | 45 | Serial.println(F("1_LED_Blink Starting")); 46 | } 47 | -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x/20_Read_Battery_Voltage_Calibrate/20_Read_Battery_Voltage_Calibrate.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | lora Programs for Arduino - Copyright of the author Stuart Robinson - 14/02/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | 9 | /******************************************************************************************************* 10 | Program Operation - This test program has been written to check that resistor divider for reading the 11 | battery voltage on pin 14 of the ESP32CAM board is working correctly. The value defined as 'ADMultiplier' 12 | in settings.h is used to adjust (calibrate) the value read from the 100K\47K resistor divider and 13 | convert into the battery mV. 14 | 15 | Serial monitor baud rate is set at 115200 16 | *******************************************************************************************************/ 17 | 18 | #define ADMultiplier 2.59 //adjustment to convert AD value read into mV of battery voltage 19 | #define DiodeForwardmV 305 //Forward voltage drop of series diode 20 | #define SupplyAD 14 //resitor divider analogue read for battery connected here 21 | #define NSS 12 //select pin on LoRa device 22 | 23 | 24 | void loop() 25 | { 26 | printSupplyVoltage(); 27 | Serial.println(); 28 | delay(2000); 29 | } 30 | 31 | 32 | void printSupplyVoltage() 33 | { 34 | //get and display supply volts on terminal or monitor 35 | Serial.print(F("Supply Volts ")); 36 | Serial.print(readSupplyVoltage()); 37 | Serial.println(F("mV")); 38 | } 39 | 40 | 41 | uint16_t readSupplyVoltage() 42 | { 43 | //relies on 3.3V as supply reference 44 | 45 | uint16_t temp; 46 | uint16_t batteryvolts = 0; 47 | byte index; 48 | 49 | temp = analogRead(SupplyAD); 50 | 51 | for (index = 0; index <= 19; index++) //sample AD 20 times 52 | { 53 | temp = analogRead(SupplyAD); 54 | batteryvolts = batteryvolts + temp; 55 | delay(1); 56 | } 57 | batteryvolts = ((batteryvolts / 20) * ADMultiplier) + DiodeForwardmV; 58 | 59 | return batteryvolts; 60 | } 61 | 62 | 63 | void setup() 64 | { 65 | Serial.begin(115200); //setup Serial console ouput 66 | Serial.println(); 67 | Serial.println(); 68 | Serial.println(__FILE__); 69 | Serial.println(); 70 | pinMode(NSS, OUTPUT); 71 | digitalWrite(NSS, HIGH); //make sure LoRa device is not active 72 | } 73 | -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x/ESP32CAM_25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x/ESP32CAM_25.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x/ESP32CAM_26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x/ESP32CAM_26.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x/ESP32CAM_27.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x/ESP32CAM_27.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x/ESP32CAM_GPIO4_Transistor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x/ESP32CAM_GPIO4_Transistor.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x/ESP32CAM_RFM9X_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x/ESP32CAM_RFM9X_1.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x/ESP32CAM_RFM9X_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x/ESP32CAM_RFM9X_2.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x/ESP32CAM_RFM9X_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x/ESP32CAM_RFM9X_3.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x/Long Range Wireless Adapter for ESP32CAM and RFM9x PCB.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x/Long Range Wireless Adapter for ESP32CAM and RFM9x PCB.pdf -------------------------------------------------------------------------------- /Long Range Wireless Adapter board for ESP32CAM and RFM9x/Long Range Wireless Adapter for ESP32CAM and RFM9x Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter board for ESP32CAM and RFM9x/Long Range Wireless Adapter for ESP32CAM and RFM9x Schematic.pdf -------------------------------------------------------------------------------- /Long Range Wireless Adapter for ESP32CAM V2/1_LED_Blink/1_LED_Blink.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | Programs for Arduino - Copyright of the author Stuart Robinson - 29/01/22 3 | 4 | This programs is supplied as is, it is up to the user of the program to decide if the programs are 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | /******************************************************************************************************* 9 | Program Operation - This program blinks the White and Red LEDs on an ESP32CAM on pins 4 and 33 10 | respectivly. 11 | 12 | Serial monitor baud rate is set at 115200. 13 | *******************************************************************************************************/ 14 | 15 | #define WHITELED 4 //pin number for White LED, set logic level high for on 16 | #define REDLED 33 //pin number for Red LED, set logic level low for on 17 | 18 | uint16_t seconds; //used to display time elapsed on Serial Monitor 19 | 20 | 21 | void loop() 22 | { 23 | Serial.print(seconds); 24 | Serial.println(F(" Seconds")); //this message should print on console at close to once per second 25 | seconds++; 26 | digitalWrite(WHITELED, HIGH); 27 | digitalWrite(REDLED, LOW); 28 | delay(100); 29 | digitalWrite(WHITELED, LOW); 30 | digitalWrite(REDLED, HIGH); 31 | delay(900); //should give approx 1 second flash 32 | } 33 | 34 | 35 | void setup() 36 | { 37 | pinMode(WHITELED, OUTPUT); 38 | pinMode(REDLED, OUTPUT); 39 | 40 | Serial.begin(115200); 41 | Serial.println(); 42 | Serial.print(__FILE__); 43 | Serial.println(); 44 | 45 | Serial.println(F("1_LED_Blink Starting")); 46 | } 47 | -------------------------------------------------------------------------------- /Long Range Wireless Adapter for ESP32CAM V2/20_Read_Battery_Voltage_Calibrate/20_Read_Battery_Voltage_Calibrate.ino: -------------------------------------------------------------------------------- 1 | /******************************************************************************************************* 2 | lora Programs for Arduino - Copyright of the author Stuart Robinson - 14/02/22 3 | 4 | This program is supplied as is, it is up to the user of the program to decide if the program is 5 | suitable for the intended purpose and free from errors. 6 | *******************************************************************************************************/ 7 | 8 | 9 | /******************************************************************************************************* 10 | Program Operation - This test program has been written to check that resistor divider for reading the 11 | battery voltage on pin 14 of the ESP32CAM board is working correctly. The value defined as 'ADMultiplier' 12 | in settings.h is used to adjust (calibrate) the value read from the 100K\47K resistor divider and 13 | convert into the battery mV. 14 | 15 | Serial monitor baud rate is set at 115200 16 | *******************************************************************************************************/ 17 | 18 | #define ADMultiplier 2.59 //adjustment to convert AD value read into mV of battery voltage 19 | #define DiodeForwardmV 305 //Forward voltage drop of series diode 20 | #define SupplyAD 14 //resitor divider analogue read for battery connected here 21 | #define NSS 12 //select pin on LoRa device 22 | 23 | 24 | void loop() 25 | { 26 | printSupplyVoltage(); 27 | Serial.println(); 28 | delay(2000); 29 | } 30 | 31 | 32 | void printSupplyVoltage() 33 | { 34 | //get and display supply volts on terminal or monitor 35 | Serial.print(F("Supply Volts ")); 36 | Serial.print(readSupplyVoltage()); 37 | Serial.println(F("mV")); 38 | } 39 | 40 | 41 | uint16_t readSupplyVoltage() 42 | { 43 | //relies on 3.3V as supply reference 44 | 45 | uint16_t temp; 46 | uint16_t batteryvolts = 0; 47 | byte index; 48 | 49 | temp = analogRead(SupplyAD); 50 | 51 | for (index = 0; index <= 19; index++) //sample AD 20 times 52 | { 53 | temp = analogRead(SupplyAD); 54 | batteryvolts = batteryvolts + temp; 55 | delay(1); 56 | } 57 | batteryvolts = ((batteryvolts / 20) * ADMultiplier) + DiodeForwardmV; 58 | 59 | return batteryvolts; 60 | } 61 | 62 | 63 | void setup() 64 | { 65 | Serial.begin(115200); //setup Serial console ouput 66 | Serial.println(); 67 | Serial.println(); 68 | Serial.println(__FILE__); 69 | Serial.println(); 70 | pinMode(NSS, OUTPUT); 71 | digitalWrite(NSS, HIGH); //make sure LoRa device is not active 72 | } 73 | -------------------------------------------------------------------------------- /Long Range Wireless Adapter for ESP32CAM V2/ESP32CAM Long Range Wireless Adapter DRF1278F PCB.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter for ESP32CAM V2/ESP32CAM Long Range Wireless Adapter DRF1278F PCB.pdf -------------------------------------------------------------------------------- /Long Range Wireless Adapter for ESP32CAM V2/ESP32CAM Long Range Wireless Adapter DRF1278F Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter for ESP32CAM V2/ESP32CAM Long Range Wireless Adapter DRF1278F Schematic.pdf -------------------------------------------------------------------------------- /Long Range Wireless Adapter for ESP32CAM V2/ESP32CAM_28.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter for ESP32CAM V2/ESP32CAM_28.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter for ESP32CAM V2/ESP32CAM_29.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter for ESP32CAM V2/ESP32CAM_29.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter for ESP32CAM V2/ESP32CAM_30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter for ESP32CAM V2/ESP32CAM_30.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter for ESP32CAM V2/ESP32CAM_31.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter for ESP32CAM V2/ESP32CAM_31.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter for ESP32CAM V2/ESP32CAM_GPIO4_Transistor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter for ESP32CAM V2/ESP32CAM_GPIO4_Transistor.jpg -------------------------------------------------------------------------------- /Long Range Wireless Adapter for ESP32CAM V2/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Long Range Wireless Adapter for ESP32CAM V2/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /Mini Tracker Board for LoRa/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Mini Tracker Board for LoRa/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /Mini Tracker Board for LoRa/Mini Tracker PCB Bottom.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Mini Tracker Board for LoRa/Mini Tracker PCB Bottom.pdf -------------------------------------------------------------------------------- /Mini Tracker Board for LoRa/Mini Tracker PCB Top.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Mini Tracker Board for LoRa/Mini Tracker PCB Top.pdf -------------------------------------------------------------------------------- /Mini Tracker Board for LoRa/Mini Tracker PCB.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Mini Tracker Board for LoRa/Mini Tracker PCB.jpg -------------------------------------------------------------------------------- /Mini Tracker Board for LoRa/Mini Tracker Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Mini Tracker Board for LoRa/Mini Tracker Schematic.pdf -------------------------------------------------------------------------------- /Mini Tracker Board for LoRa/Mini Tracker.csv: -------------------------------------------------------------------------------- 1 | Part,Value,Package,Description 2 | C1,100nF,SMT 0805, 3 | C2,100nF,SMT 0805, 4 | C3,100nF,SMT 0805, 5 | C4,47uF,SMT 1206, 6 | C5,47uF,SMT 1206, 7 | CONA,3X1,3 X 0.1+IB0-, 8 | D1,IN4148,SOD123, 9 | D2,BO520,SOD123, 10 | D3,BO520,SOD123, 11 | FS1,250mA,SMT 1206, 12 | IC1,ATMEGA328P+AC0-AU,TQFP 32pin,8+AC0-bit Microcontroller with In+AC0-System Programmable Flash 13 | IC2,DRF1278F,DRF1278+AF8-SMT, 14 | IC3,MB85RC16PNF,SOIC08+AEA-1, 15 | L1,RED,SMT 0805, 16 | L2,BLUE,SMT 0805, 17 | L80+AF8-L86+AF8-GPS,L80+AF8-L86,L80+AF8-PACKAGE,GPS module with an embedded patch antenna (15mmx15mmx4mm) 18 | PROG,5X1,5 X 0.1+IB0-, 19 | Q1,2N7002,SOT23, 20 | R1,10K,SMT 0805, 21 | R2,91K,SMT 0805, 22 | R3,11K,SMT 0805, 23 | R4,1K,SMT 0805, 24 | R5,22K,SMT 0805, 25 | R6,4K7,SMT 0805, 26 | R7,4K7,SMT 0805, 27 | R8,1K,SMT 0805, 28 | REG,MCP1700+AF8-SOT23,SOT23, 29 | RESET,SMTSWITCH+AF8-4+AF8-X+AF8-3,SMTSWITCH+AF8-4+AF8-X+AF8-3, 30 | X1,8Mhz,CSTCE 3.20x1.30mm, 31 | -------------------------------------------------------------------------------- /Mini Tracker Board for LoRa/MiniTracker_Bottom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Mini Tracker Board for LoRa/MiniTracker_Bottom.jpg -------------------------------------------------------------------------------- /Mini Tracker Board for LoRa/MiniTracker_Top.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/Mini Tracker Board for LoRa/MiniTracker_Top.jpg -------------------------------------------------------------------------------- /Mini Tracker Board for LoRa/ReadMe.md: -------------------------------------------------------------------------------- 1 | ### Mini Tracker Board for LoRa 2 | 3 | This is a board that will enable you to build a small and light LoRa based GPS tracker. LoRa based trackers are capable of sending GPS co-ordinates over great distances. The current record for receiving signals line of sight is 832km from a high altitude balloon, see **[here](https://www.thethingsnetwork.org/article/lorawan-world-record-broken-twice-in-single-experiment-1)**. 4 | 5 | This is a board only, the DRF1278 and Quectel GPS and other components are not supplied. 6 | 7 | There is a 5 pin connector fitted for programming the board as an Arduino device in the normal way via a USB to Serial adapter. There is also a 3 pin connector that will allow the tracker to be powered from the 5V servo supply usually found in drones and other radio controlled models. 8 | 9 | A simple receiver can be built from the **[Easy Mikrobus Pro Mini](https://github.com/StuartsProjects/Devices/tree/master/Easy%20Mikrobus%20Pro%20Mini)** kit and **https://github.com/StuartsProjects/Devices/tree/master/Breadboard%20Friendly%20DRF1278%20LoRa%20Module** Module 10 | 11 | Detailed assembly instructions are not provided, so be sure you are happy to assemble 0805 SMT devices and have the equipment to load the Arduino bootloader into the ATmega328P processor which needs to be done before its soldered in place. 12 | 13 | **Do not operate the DRF1278F module without an antenna.** 14 | 15 | **The DRF1278F and Quectel GPS are 3.3V supply and logic level devices, do not use directly with 5V controller boards such as the Arduino UNO.** 16 | 17 | There are examples for using this module for GPS trackers or sensors provided in an Arduino library at this link; [SX12XX Library](https://github.com/StuartsProjects/SX12XX-LoRa). 18 | 19 | 20 | https://github.com/StuartsProjects/Devices/tree/master/Mini%20Tracker%20Board%20for%20LoRa -------------------------------------------------------------------------------- /UBLOX MAX 8MQ GPS Breakout Board/Documentation.url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,11 3 | [InternetShortcut] 4 | URL=https://github.com/StuartsProjects/Devices/tree/master/UBLOX%20MAX%208MQ%20%20GPS%20Breakout%20Board 5 | IDList= 6 | -------------------------------------------------------------------------------- /UBLOX MAX 8MQ GPS Breakout Board/GPS Breakout 200917 PCB.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/UBLOX MAX 8MQ GPS Breakout Board/GPS Breakout 200917 PCB.pdf -------------------------------------------------------------------------------- /UBLOX MAX 8MQ GPS Breakout Board/GPS Breakout 200917 Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/UBLOX MAX 8MQ GPS Breakout Board/GPS Breakout 200917 Schematic.pdf -------------------------------------------------------------------------------- /UBLOX MAX 8MQ GPS Breakout Board/GPS Breakout V5 Parts List .csv: -------------------------------------------------------------------------------- 1 | Part,Value,Device,Description 2 | ANT,JTI+AF8-ANTENNA+AC0-1575AT43A40,,GPS Antenna 3 | C1,4u7,SMT 0805,CAPACITOR 4 | CON1,6X1,0.1+IB0- Angled, 5 | I2C,4x1,0.1+IB0- connector,For sensor etc. 6 | IC1,TC74,SMT SOT23, 7 | L1,33nH,SMT 0603,RESISTOR 8 | LED1,RED,SMT 0805,LED 9 | R1,1K,SMT 0805,RESISTOR 10 | GPS ,UBLOX+AF8-MAXM8Q, , 11 | -------------------------------------------------------------------------------- /UBLOX MAX 8MQ GPS Breakout Board/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/UBLOX MAX 8MQ GPS Breakout Board/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /UBLOX MAX 8MQ GPS Breakout Board/ReadMe.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | This GPS Breakout PCB is principally intended for use in high altitude balloon trackers. This is a board only, you will need to supply your own Ublox MAX M8Q GPS and other components. 5 | 6 | You can fit a a simple wire antenna, 1/4 wave == 4.76cm of 'ERNIE BALL CUSTOM GAUGE No.13 guitar wire'. There are also holes to allow the fitting of 4 x 1/4 wave ground plane radials. 7 | 8 | You can alternatively fit the often used ceramic stick antenna ,JTI_ANTENNA-1575AT43A40, but it does not seem to perform as well as the simple wire antenna. 9 | 10 | The MAX M8Q GPS supports both serial and I2C connections so the 6 pin edge connector has the I2C connections as well as the serial. There is then the option of fitting an I2C TC74 temperature sensor, IC1. There is also a 4 pin I2C header to which a BMP280 or BME280 sensor breakout board can be fitted. 11 | 12 | The inductor can be fitted to protect the GPS antenna input from static damage. Its a 33nH inductor, Farnell part 242 4724, WURTH ELEKTRONIK part 744786133A. 13 | 14 | You can also add an LED which flashes when the GPS has a fix. -------------------------------------------------------------------------------- /UBLOX MAX 8MQ GPS Breakout Board/Ublox_MAXM8Q_Breakout_Board.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/UBLOX MAX 8MQ GPS Breakout Board/Ublox_MAXM8Q_Breakout_Board.jpg -------------------------------------------------------------------------------- /YModem File Transfers to PC/How to download Tindie product documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/YModem File Transfers to PC/How to download Tindie product documentation.pdf -------------------------------------------------------------------------------- /YModem File Transfers to PC/YModem1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/YModem File Transfers to PC/YModem1.jpg -------------------------------------------------------------------------------- /YModem File Transfers to PC/YModem2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/YModem File Transfers to PC/YModem2.jpg -------------------------------------------------------------------------------- /YModem File Transfers to PC/YModem3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/YModem File Transfers to PC/YModem3.jpg -------------------------------------------------------------------------------- /YModem File Transfers to PC/YModem6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StuartsProjects/Devices/ce0b820b4ee5e6cc262302874327d8e184454e0f/YModem File Transfers to PC/YModem6.jpg --------------------------------------------------------------------------------