maanantai, 4. lokakuu 2021

Some BLE devices and apps - Oras, G-Smart, Voi, Airthings

VOI city scooters IoT

voi-scooter.jpg

ORAS application (Google Play) could connect to various ORAS devices and display info/send commands to devices. No authentication.
(https://teknokoodiradio.vuodatus.net/lue/2021/07/some-bluetooth-devices-safeline)

oras-app1.jpg

oras-app2.jpg

 

G-Smart - digital DIN-rail time switch. No authentication.
https://play.google.com/store/apps/details?id=com.gycom.gsmart&hl=fi&gl=US

 

g-smart1.jpg

g-smart2.jpg

g-smart3.jpg

g-smart5.jpg

g-smart4.jpg

 

Airthings Wave+ radon sensor
https://play.google.com/store/apps/details?id=com.airthings.airthings&hl=fi&gl=US

airthings4.jpg

airthings1.jpg

airthings3.jpg

airthings2.jpg

 

lauantai, 2. lokakuu 2021

Traffic camera - RGBCam - 2

Android RGBCam app (free version of SpectraCam)

Empty traffic camera box - with different image settings

rgbcampic.jpg

https://i.ibb.co/F872j2H/rgbcampic.jpg

 

sunnuntai, 19. syyskuu 2021

Traffic camera - RGBCam

Android RGBCam app (free version of SpectraCam)

Fake camera inside Traffic camera box - with different image settings

rgbcam-speedcam-fakecam.jpg

https://i.ibb.co/BG60y3V/rgbcam-speedcam-fakecam.jpg

 

rgbcam-speedcam-fakecam2.jpg

https://i.ibb.co/MntXq6x/rgbcam-speedcam-fakecam2.jpg

 

 

maanantai, 13. syyskuu 2021

Mods for SDRSharp simple DMR plugin

Visual Studio 2019
C#
dotPeek - for reverse engineering simple DMR plugin (as VS project)

Show code

Player.cs
namespace SDRSharp.DMR
{
  public class Player : IDisposable
  {
...

    public int IqBufferSize { get; set; }

    public uint dmrCode { get; set;  }   // add this line
...

Simple DMR plugin combines voice data from both timeslots into single channel, maybe playing from 0 to 287 or from 288 to 576 plays either ts.
   
private unsafe void PlayerThread()
    {
      this._needAudioConfigure = true;
      while (this._playerEnabled)
      {
        if (this._iqStream.Length < 576 || this._audioSampleRate <= 0.0)
        {
          Thread.Sleep(20);
        }
        else
        {
          if (this._needAudioConfigure)
          {
            Player.Reset(this._mdmInstance);
            this._scrambler.Init((uint) this._mdmInstance);
            this._maxAudioBufferSize = (int) this._audioSampleRate;
            this._resamplerAudio = new Resampler(8000.0, this._audioSampleRate, 160, 0.45);
            this._needAudioConfigure = false;
          }
          this._iqStream.Read(this._modemInBufferPtr, 576);
          this._scrambler.MpyScrm_p((float*) this._modemInBufferPtr, 1152);
          int inputLength = Player.Process(this._mdmInstance, this._modemOutBufferPtr, (float*) this._modemInBufferPtr);
          this.IsDigit = inputLength >= 0;
          this.dmrCode = Player.GetCode(this._mdmInstance);  // add this
          if (inputLength > 0)
          {
            int count = this._resamplerAudio.Process(this._modemOutBufferPtr, this._resampledAudioBufferPtr, inputLength);
            if (this._audioStream.Length + count < this._maxAudioBufferSize)
              this._audioStream.Write(this._resampledAudioBufferPtr, count);
            else
              ++this.LostBuffers;
          }
        }
      }
    }

 

DMRPanel.cs
...
    private void DisplayTimer_Tick(object sender, EventArgs e)
    {
      if (this._player == null)
        return;
      this.isDpmrLabel.Visible = this._player.IsDigit;
      // add this
      if (this.isDpmrLabel.Visible)
      {
          isDpmrLabel.Text = "DMR " + this._player.dmrCode.ToString();
      }

      this.voiceLabel.Visible = this._player.IsVoice;
      this.bufferLabel.Text = string.Format("Buffer: use {0:f1}% lost {1:f0}", (object) this._player.IqBufferSize, (object) this._player.LostBuffers);
    }

dmrpanel.jpg

torstai, 9. syyskuu 2021

SmartSolar charge controller

https://www.victronenergy.com/panel-systems-remote-monitoring/victronconnect

ssolar3.jpg

 

ssolar1.jpg

ssolar2.jpg

ssolar4.jpg

ssolar5.jpg

Probably the most important initial security action to do for any connected device is to change default PIN codes, passwords etc.

ssolar6.jpg

Victron charger

victron-bscip22-1.jpg

victron-bscip22-2.jpg

victron-bscip22-3.jpg