Skip to content

defavltt/stm32-lora-spectrum-analyzer-pager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

STM32 based LoRa spectrum analyzer & pager

Features

  • Sending and receiving messages through LoRa

  • Configuring most of the RFM95's settings

  • Spectrum analyzer

  • Direct view of RFM95's registers

  • Battery measurement

  • Backlight

  • Vibration

  • Sleep modes

Operation

  • Main menu is opened by pressing any button except multi key and escape

  • Stored messages can be seen by pressing multi key

  • Pressing and holding up / down automatically repeats the button

  • Waking up is done by pressing escape

  • Backlight is turned on / off by pressing and holding enter

Menu description

All 10 menus (with the last one being an optional clock)

Send message

  • Screen is split into two halves
    • Text field
    • Scrollable keyboard with SEND / CLEAR / BACKSPACE buttons at the bottom

Display settings

  • Backlight mode - timeout / no timeout (will not go to sleep) / on startup (turn backlight on when starting up)
  • Adjust contrast

RF settings

  • Setting frequency
    • Select a digit to change by entering in the option and moving the digit cursor left / right
  • Continuous TX - doesnt transmit actual data, used for testing other devices

Feedback

  • Select ringing type when a message is received - silent / single beep / beep & vibration / only vibration
  • Select key press feedback - silent / only click / click & vibration / only vibration

Sleep settings

  • Enable / disable sleep
  • Enable / disable receiving (when enabled, device wakes up every 5 seconds to listen for a incoming message)

Battery level

  • Shows battery level in volts

Spectrum analyzer

  • Marker indicates RSSI for center frequency
  • 4 levels of vertical zooming
  • Navigation through parameters is done by pressing enter
  • Editing starting and ending frequency of the window
    • Up / down adjusts frequency by 1
    • Left / right adjusts frequency by 5
  • Showing parameters and/or marker is done by pressing multi key

Registers debug

  • Top left number showing address of the first register of the group
  • Top right is showing current selected register in binary format
  • Values at left are registers in HEX format
  • Values at right are the addresses corresponding to the registers
  • Navigating the 8 register group is done by pressing up / down
  • Navigating outside of the group is done by pressing left / right

Save settings

  • Saves settings into flash (don't overdo it to prevent flash memory wear)

Time and date

  • Setting time

    • Select hour / minute by entering in the option, moving the digit cursor left / right and changing it by pressing up / down
  • Setting date

    • Select day / month / year by entering in the option, moving the digit cursor left / right and changing it by pressing up / down
  • Confirm by pressing enter on set time / date

  • Requires an i2c clock board(MCP7940)

Hardware

  • Parts
    • RFM95/SX1276 board
    • Tri-T D22-5003 B01 lcd screen (ks0713 driver)
    • STM32F103C8
    • 8Mhz crystal resonator
    • MCP1700 / MCP1703 3.3v regulator
    • AP2301 P channel MOSFETs used to drive vibrator and buzzer

Double sided board (bottom side freehand drawn with a permanent marker) with some wire jumpers required. Pads for keyboard, screen and optional serial are left. Parts from MT3608 are used for the backlight 8.2v power (only if the same screen is used - Tri-T D22-5003 B01 / driver - ks0713). Using a connector for plugging in an external antenna or a PA is encouraged.

This project uses:
Arduino Core STM32
STM32 Low Power
u8g2
a modified version of RadioHead
a modified version of MCP7940

MCX connector

About

STM32 based LoRa (RFM95/SX1276) spectrum analyzer, pager and platform

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published