Code Monkey home page Code Monkey logo

freematics's Introduction

freematics's People

Contributors

alex-taffe avatar andreaborgia-abo avatar borud avatar dajackkal avatar fab0301 avatar lalten avatar libots avatar mangelvil avatar stanleyhuangyc avatar tsamaya avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

freematics's Issues

Alert user when device is pulled

I'm not sure if the Data Logger V4 has an internal battery. If it does then a nice feature would be to send a notification that the device was pulled from the OBDII socket. The notification could be send via email using the Wifi module or via SMS if using the GSM module.

Bug When pidTier2 = 0 (empty)

Small bug in logOBDData() function, that appears if you have no pidTier2 PID's as specified by the byte array at top of datalogger.ino

This can be gotten around with a solution like this:

        if (index1 == TIER_NUM1) {
            index1 = 0;
           if(TIER_NUM2){
               queryOBDData(pidTier2[index2]);
               index2 = (index2 + 1) % TIER_NUM2;
           }
        } else {
...

unstable SIM800L EVB

Hello
I am testing test code with an arduino mega2560 and a module gsm SIM800L EVB, but the result is very unstable, sometimes it gets many connections and sometimes it does not, it stops or it gives me connection error continuously.

These doing a project that consists of sending samples from a sensor to a bbdd and I thought that the SIM800L module was a good idea, but I have doubts, is anyone having these problems?

Thank you.

And thanks for the library.

Can't see Freematics ONE v4 in the list of COM ports on Mac OS in Arduino IDE

Hello,

I'm trying to follow http://freematics.com/pages/products/freematics-one/guide/ to start working with my Freematics ONE v4.

When I connect the device to my MacBook Pro using a USB cable, I can't see any new COM ports available in the Arduino IDE. I can see new COM ports when using other devices (Uno, Micro, ESP8266 boards), but not Freematics. I don't see anything related to Freematics when I run "ls /dev" in the Terminal, although I do see other COM devices there.
I have Mac OS 10.13.3 Sierra, in case that matters.

I don't get anything written on my FAT SD card when I plug it into the adapter.

However, when using the Arduino IDE for Android using an OTG cable I can at least see ACC/GYR/MAG lines on the serial monitor, so seems like the device is not broken. I can't upload a Blink sketch though.

Unfortunately, I don't have any other host devices to try with the Freematics ONE.
Can you please advise on how to set up the COM to use Freematics ONE from Arduino IDE on Mac OS?
Thanks!

datalogger v4 header missing

Last commit appears to have removed datalogger.h? Including an older version doesn't seem to work -- is the build broken?

usart communication

hi all,
I'm doing a project using the STM32F103VCT6 micro controller and the board used is HY-MiniSTM32V.The soft wares used are STM32CubeMX(for generating c initialization code) , Atollic TrueStudioLite (as the integrated development environment) ,Flash Loader Demonstrator(for flashing the code to the controller) and the Tera Term(for getting the output).I am currently doing interrupt program and i have kept my code along with this.But the program is not working as an interrupt can anyone suggest me how to fix this?Eagerly waiting for all your replies.
code1.txt

USBasp wiring is incorrect

The wiring on this page is incorrect. The ground wire should go to pins "1,3,5 or 7" instead of "pin 8". "Pin 8" is not connected to anything in the programmer. Once the ground wire is connected, the Freematics device is powered and programmable.

Additionally, the pin numbering in that page looks to be incorrect.

See the USPasp page for reference.

Bluetooth communication in Freematics One

Hello,

I can't find any reference to BLE logging and communication in Freematics ONE (firmware_v4) sketches. However, I see such methods in FreematicsNetwork.cpp and telelogger sketch for Freematics ONE+ (firmware_v5).
Could you clarify, please, does BLE module works in Freematics ONE, in case if I ordered it with BLE module.
And where can I find sketches with BLE communication for ONE. Or if BLE module was ordered for ONE, ONE+ telelogger sample should work as well, shouldn't it?

Thanks in advance.

sd card mounting issue

With brand new freematics, there is some software installed on those. When you run it, there are sometimes issue when mounting the card:

--- Miniterm on COM7  115200,8,N,1 ---
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
ESP32 240MHz 4MB Flash
Power-saving disabled
MEMS...9-DOF OK
ACC BIAS...-0.06/-0.00/-1.00
SD Card:15732MB
OBD...

Works ok. You relaunch again, no card found.

--- Miniterm on COM7  115200,8,N,1 ---
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
ESP32 240MHz 4MB Flash
Power-saving disabled
MEMS...9-DOF OK
ACC BIAS...-0.08/-0.00/-1.09
No SD Card
OBD...

Would it be possible to get the code running on new devices? Why is it failing while the card is still in.

Log MPU-6050 MEMS values on multiple lines

The number of comma separated values per line depends on the data type. I propose always writing three values per line: , , and . Data types with multiple values such as ACC, GYR, and MAG can be distinguished by a suffix (x, y, z). This is already done for GPS values (i.e. latitude and longitude) and could be done with the MEMS data as well. This would involve modifying logMEMSData to make multiple calls to logData (like is done with logGPSData).

Attempt to connect to list of known open Wifi Networks

It would be nice to have some code for the wifi module that would attempt to connect to any wifi networks that it finds that are not secure. This way as you are driving the device would continuously connect, send data, lose connection, connect again, send the next set of data...etc.

I'd do it but I don't know how to code for it. Here's some pseudo-code though.

//An array of all open wifi networks that don't need passwords that the device has found
//You need to check this periodically. Maybe every 5-20 seconds because moving car, duh
$connection = false;
$insecureWifiArray = {wifi,wifi2,wifi3,wifi3}

//if we have some wifi addressed then start the process of sending data
if ($insecureWifiArray) {
//attempt to connect to the first one. if it fails then attempt to connect to the next
foreach($insecureWifiArray as $wifiAddress){
$connection = connectToWifi($wifiAddress);
if($connection) {
//we made a connection. Now we need to see if we can actually send and receive data or if this is an open network that requires us to open a web browser to accept some agreement to use.
//If you know a way to auto accept these types of open networks then write some code. I don't, so for right now we don't want networks like this.
//To check this we can do it one of two ways. Attempt to connect to a website like google and see if it's actual headers are return to us. The second, send actual data somewhere and see if we get an expected response back.
$getHTMLHeaderFromSite = getHeader(http://google.com);
if($getHTMLHeaderFromSite){
//we successfully got google's headers so now we send our payload to an address of our choosing
$sendData = sendPayload(http://MYWEBSERVER.com,$payload);
//we have to make sure it was actually sent. If it failed then we need to try again.
if($sendData){
//Yay data was set now we can check to see if we still have connection with the current wifi network.
//If we don't then start the whole process over again. If we do then send the next payload.
}else{
//data failed to send, try again
}
}
}
}
}

PID_FUEL_RAIL_PRESSURE formula incorrect

in obd.cpp should be:

    case PID_FUEL_RAIL_PRESSURE: // kPa
        result = (int32_t)getLargeValue(data) * 10; 

(and will need shuffling down to not interfere with the pid's that still need result = getLargeValue(data);)

problem though is that rail pressure in kpa is higher than int (16bit) and the COBD::normalizeData function will need adapting to return a 32bit int instead too.

Open source the iOS app?

Heya,

Was just wondering if you had any plans to open source the iOS app? It would be a really cool example of interfacing with the device, and i'd love to play around with it.

Alternately, do you have/have plans for an iOS library/API for accessing it?

(Just got mine a few days ago and keen to play around with it!)

Cheers

Glenn / devalias

Up to date?

I've (finally) managed to find the time to play with this, but it seemed the only data coming through in the iOS app was ACC (even in debug mode)

I noticed the ODB library in https://github.com/stanleyhuangyc/ArduinoOBD seems far more up to date/with more PID's. Would this make a difference?

It also seems the included TinyGPSPlus library is incompatible, so need to manually pull in TinyGPS from elsewhere.

Failing that, are any of the other sketches compatible with this hardware (eg https://github.com/stanleyhuangyc/ArduinoOBD/tree/master/megalogger)?

get voltage function in loop without obd

Hi, in commit 4efef68 you uncommented

    int v = logger.getVoltage();
    logger.logData(PID_BATTERY_VOLTAGE, v);

this is in the loop without any checks to see if obd active or not, this it is constantly being run and logged with an incorrect voltage ~ 0.398v

likely it doesnt need to be checked this regularly either

also curious why it needs its own function and isnt collected by logger.logOBDData();

MEMS Stuck around value

Hi Stanley,

We have remarked that sometimes, the gyroscope get stuck around a value and oscillate around that value. Therefore, code implementation based on gyroscope to detect and end of trip does not work because the accerleration levels appear to be high which is not true.
Here is an output where you can see that Az is stuck around 10.

Ax Ay Az
2.98 -2.95 -10.35
3.3 -5.08 -10.13
2.46 -5.07 -9.81
0.44 -4.91 -9.39
2.26 -3.03 -10.57
3.22 -3.15 -10.27
2.17 -3.91 -10.31
6.42 -3.9 -10.35
2.53 -1.82 -10.96
2.78 -2.97 -10.68

Another good output on same device:

Ax Ay Az
0.22 0.26 0.18
0.03 0.02 0.28
0.18 0.19 0.17
0.1 0.11 0.22
0.14 0.14 0.12
0.14 0.22 0.25
0.13 0.13 0.14
0.11 0.18 0.14

We do this to compute the calibration bias

#if MEMS_MODE
    Serial.print("ACC BIAS...");
    accBias[0] = 0;
    accBias[1] = 0;
    accBias[2] = 0;
    int n;
    for (n = 0; n < 100; n++)
    {
        float acc[3] = {0};
        mems.read(acc);
        accBias[0] += acc[0];
        accBias[1] += acc[1];
        accBias[2] += acc[2];
        delay(10); // TODO do we have new values in 10 millis????
    }
    accBias[0] /= n;
    accBias[1] /= n;
    accBias[2] /= n;
    Serial.print(accBias[0]);
    Serial.print('/');
    Serial.print(accBias[1]);
    Serial.print('/');
    Serial.println(accBias[2]);
#endif

I found also this page http://www.sureshjoshi.com/embedded/invensense-imus-what-to-know/
which refers to dmp_set_accel_bias function which I have not found in your code.

Any idea?

SIM800: No support for software serial?

Hi, Im trying to use the SIM800 library in accordance with your example.

Is there a reason why software serial won't work? I modified the test code as follows and it still doesn't work:

GPRSTest.ino:
added:

include <SoftwareSerial.h>

SoftwareSerial SIMSer = SoftwareSerial(2, 3);

SIM800.h
// change this to the serial UART which SIM800 is attached to

define SIM_SERIAL SIMSer

when I try to compile I get the following error:

In file included from ... SIM800/SIM800.h: In member function 'bool CGPRS_SIM800::available()':
.... SIM800/SIM800.h:14:20: error: 'SIMSer' was not declared in this scope
#define SIM_SERIAL SIMSer
^
/Users/troycados/Documents/Arduino/libraries/SIM800/SIM800.h:79:14: note: in expansion of macro 'SIM_SERIAL'
return SIM_SERIAL.available();
^

Am I doing anything wrong in particular? or does the library just not support software serial?

Thanks!
-T

Please add a timeout parameter to COBDSPI::init(...)

Currently, if you call COBDSPI::init(...) while the Freematics ONE is not connected to an OBD port, it will block execution indefinitely.
In some cases (e.g. debugging), this may not be desired. It would be nice to have a timeout option so the code can continue without an OBD host connected. A timeout should probably be considered an error (including setting obd.errors to a non-zero value).

Too many DAT#####.CSV files are created by the datalogger

The datalogger sketch creates an extra DAT file each time it creates a DAT file. The result is that it always creates an even number of DAT files, and all of the odd-numbered DAT files are completely empty.

The following code is probably relevant:

  } else {
    // no GPS connected 
    int index = one.openFile(0);
    if (one.openFile(0) != 0) { // TODO: fix duplicate DATA file bug.
              // when one.openFile is only called once, no data is written???
      one.state |= STATE_FILE_READY;
      SerialRF.print("FILE ");
      SerialRF.println(index);
    } else {
        SerialRF.println("File error");
    }
  }

The problem appears to be that one.openFile(0) is called twice: once to save the result into index, and another time to use the result in the if statement. I tried replacing the second call in the comparison expression with the value of index, but that didn't work for some reason. I think that it resulted in no data being recorded at all.

OBD-II UART Adapter V2.1 says haven't MEMS

Function memsInit returns false when I initialize it and I don't know why.

bool COBD::memsInit(bool fusion)
{
	char buf[16];
	
	if (sendCommand("ATTEMP\r", buf, sizeof(buf)) <= 0 || strchr(buf, '?'))
		return false;
	if (fusion) {
		m_fusion = true;
		return sendCommand("ATQU1\r", buf, sizeof(buf));
	} else {
		if (m_fusion) {
			m_fusion = false;
			sendCommand("ATQU0\r", buf, sizeof(buf));
		}
		return true;
	}
}

I checked it and it always perform first IF and rest doesn't.

if (sendCommand("ATTEMP\r", buf, sizeof(buf)) <= 0 || strchr(buf, '?'))
		return false;

I'm testing with orientation_demo included in ArduinoOBD libraries and MEMS still doesn't work, other functions like readPID works fine.

#include <OBD2UART.h>

// On Arduino Leonardo, Micro, MEGA or DUE, hardware serial can be used for output as the adapter occupies Serial1
// On Arduino UNO and those have no Serial1, we use software serial for output as the adapter uses Serial
#ifdef ARDUINO_AVR_UNO
#include <SoftwareSerial.h>
SoftwareSerial mySerial(A2, A3);
#else
#define mySerial Serial
#endif

#if defined(ESP32) && !defined(Serial1)
HardwareSerial Serial1(1);
#endif

COBD obd;
bool hasMEMS;

void setup()
{
  mySerial.begin(115200);
  while (!mySerial);
  
  // this will begin serial

  for (;;) {
    delay(1000);
    byte version = obd.begin();
    mySerial.print("Freematics OBD-II Adapter ");
    if (version > 0) {
      mySerial.println("detected");
      break;
    } else {
      mySerial.println("not detected");
    }
  }
  
  // initialize MEMS with sensor fusion enabled
  hasMEMS = obd.memsInit(true);
  mySerial.print("MEMS:");
  mySerial.println(hasMEMS ? "OK" : "NO");
  if (!hasMEMS) {
    for (;;);
  }
}


void loop()
{
  int16_t acc[3] = {0};
  int16_t gyro[3] = {0};
  int16_t mag[3] = {0};

  if (!obd.memsRead(acc, gyro, mag)) return;
  
  mySerial.print("ACC:");
  mySerial.print(acc[0]);
  mySerial.print('/');
  mySerial.print(acc[1]);
  mySerial.print('/');
  mySerial.print(acc[2]);

  mySerial.print(" GYRO:");
  mySerial.print(gyro[0]);
  mySerial.print('/');
  mySerial.print(gyro[1]);
  mySerial.print('/');
  mySerial.print(gyro[2]);

  mySerial.print(" MAG:");
  mySerial.print(mag[0]);
  mySerial.print('/');
  mySerial.print(mag[1]);
  mySerial.print('/');
  mySerial.print(mag[2]);

  mySerial.println();

  float yaw, pitch, roll;
  if (obd.memsOrientation(yaw, pitch, roll)) {
    mySerial.print("Orientation: ");
    mySerial.print(yaw, 2);
    mySerial.print(' ');
    mySerial.print(pitch, 2);
    mySerial.print(' ');
    mySerial.println(roll, 2);
  }

  delay(100);
}

I need some help please. Thanks.

Freematics One Datalogger: GPS Doesn't Attempt to Reconnect

It seems that if the logger can't find GPS when it starts up, it gives up forever. It would be nice if it tried again, I've implemented it and it looks like this:

In loop():

#if USE_GPS
  if (one.state & STATE_GPS_FOUND) {
    one.logGPSData();
  } else {
    one.connectGPS();
  }
#endif

And in ONE class:

    void connectGPS() {
      static unsigned long GPS_LAST_TIME = 0;
      if (!GPS_LAST_TIME || millis() > GPS_LAST_TIME + 10000) {
        delay(100);
        GPS_LAST_TIME = millis();
        SerialRF.print("GPS,");
        if (initGPS(GPS_SERIAL_BAUDRATE)) {
          state |= STATE_GPS_FOUND;
          SerialRF.println("OK");
        } else {
          SerialRF.println("NO");
        }
      }
    }

Using the accelerometer

Hello!

Before getting a Freematics ONE v4 with MPU-9250 onboard, I was using a LSM6DS3 on a breadboard to record accelerations in my car. I performed some test recordings with both accelerometers side by side and noticed that the data I get from MPU-9250 is not as good as I can get from LSM6DS3.

First of all, I can't read accelerometer data from MPU-9250 more often than ~100Hz. With LSM6DS3 I can easily get 200HZ and possibly even 1000Hz. Getting higher-frequency data is crucial to have orientation calculated correctly.

Second, the data that comes from MPU-9250 has a lot more noise. As you can see on the screenshot, the noise amplitude is ~5x larger for MPU-9250 on average and it can be as high as 1g sometimes! I wonder if it has something to do with the i-ELOOP on my Mazda 6 โ€“ the noise seems to increase when I take highway exits. If it has, probably the power supply in the Freematics ONE doesn't have a good enough low-pass filter?

How to read the screenshots: Red = right/left, Green = accel/braking, Black = down/up.
The bold graphs are averaged readings (0.2s window for R/G, 0.5s window for B).
The horizontal time scales are different because I'm using ~200Hz for LSM6DS3 and ~100Hz for MPU-9250 (I'm not using an RTC, so the time readings may be off by a small factor).

Any tips how to get lower noise and higher frequency accelerometer data from the Freematics ONE v4?
Any chance to get a less noisy / more responsive accelerometer in the next hardware revision?

LSM6DS3 vs MPU-9250, same trip:
lsm6ds3
mpu-9250

LSM6DS3 vs MPU-9250, highway exit close-up:
lsm6ds3 close-up
mpu-9250 close-up

ELM327 is working, Freematics one is not in the same vehicle.

I have two cars (both use CAN11B/500K, manufactured in 2009 and 2012) and two OBD dongles (clone ELM327 and Freematics ONE).

Car A
Both ELM327 and Freematics ONE are working fine.

Car B
ELM327 is working fine,
Freematics ONE is not working -> no response.

When I enable debug options, STM32 responde from ATZ, ATE0,. but not from 0100,...
I have specified OBD protocol to CAN11/500K instead of AUTO but nothing changed.
It looks similar to #7 .

Since ELM327 is working, I suspect there's a compatibility issue. I read several posts in forum discussing the same issue.

I have logic analyzer, oscilloscope and National Instrument CAN device. Do you have any recommendation to solve the problem, or do you want more information?

GPS values are not recorded at full precision in the datalogger sketch

The values for GPS speed and GPS heading are not being recorded at their full precision. Speed is rounded to whole kilometers per hour, yet it is available from the raw NMEA GNRMC message in knots with a precision of three digits after the decimal place. Likewise, heading is available in degrees with a precision of two digits after the decimal place, but it is rounded to whole degrees.

I am not sure where the $GPS messages are coming from, but I speculate that they are created from the raw NMEA messages on the STM32. At least, I couldn't find any place where the $GPS messages are created within this project.

It should be possible to use TinyGPS in the datalogger sketch just like the telelogger sketch. TinyGPS appears to handle the decimal precision of values in the NMEA data. I plan to work on integrating TinyGPS into the datalogger sketch on my own, but I thought this was worth posting here anyway.

avrdude: stk500_recv(): programmer is not responding

Hello,

I have Freematics V4 device, with BLE and SIM5360E on board.
I have managed to upload sketches on it before.

I didn't upload on it for a while (~1 month), and there were several updates on my Mac:

  • I have updated to macOS High Sierra (10.13.3) from macOS Sierra.
  • I have updated Java to ver.8 build 161 from ver.8 build 151

I can't upload Sketches to the board anymore.
The error I see in Arduino IDE is next:

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:01:35
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/Users/xxx/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/etc/avrdude.conf"
         User configuration file is "/Users/xxx/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.SLAB_USBtoUART
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
....

I have already tried to update USB driver from the latest version from here.
Updated all boards and libraries in the Arduino itself.

When I try to Burn bootloader, it says next:

avrdude: Error: Could not find USBtiny device (0x2341/0x49)

Any help is appreciated.

source code for protocol mcu

Hi love the project but need to send raw can frames and k-line bitstreams. Will you open source the stm32 protocol processor as well?

logger & elm327 mode not working an ATSP5 Citroen

** latest, have now tried on toyota yaris and its fine, so it must be a problem with the logger hardware and protocol ATSP5 in my Citroen, as elm327 works fine.

HI again. With the elm327 sketch i can connect and get a response from 0100 or 010C via bt terminal, but using app "E OBD2 Facile -Car Diagnostics" it can connect but not read any data. But with non-logger elm327 off ebay it works fine.

Im trying to debug to work out whats going on, as it doesnt work in logger mode either. So i thought if i could get it working nicely in elm327 mode that would be a good start.

No sniffing mode for datalogger

CAN can operate in a broadcast mode in some vehicles. I would like to use this mode on my FreematicsONE datalogger. I've tried to implement this myself by repeatedly calling receive() and parsing the response, but in COBDSPI::receive in the FreematicsONE library, I always get a timeout with digitalRead(SPI_PIN_READY).

SIM Hardware seems to fail

We are attempting to connect to Cell Service using a Hologram chip, but keep getting errors at the following command:

Serial.println("Try AT+CPSI?\n");

It seems the SIM is behaving oddly, before even touching our APN, any help?

Implement support PID

Is there a way that you could implement the 0x00 PID so it will be possible to request wich pids are supported by the car?

Connect Error

Hello,

I am always getting "Connect Error"no matter what url I use.
For Example:
gprs.httpConnect("www.api.thingspeak.com/update?api_key=OZSS0Z6KPMWAJ&field1=26&field2=30");

For this link I always get "HTTP_ERROR"

whereas I can read other parameters like:
Operator:IDEA Cellular Limited
Signal:-52dB
LAT:21.149173
LON:79.098808
TIME:9:48:49

Please suggest.

STM32 appears to hang

When unable to connect to the CANBUS (as is the case for me), the STM32 can hang mid-SPI command and not respond. The only way to recover is by removing the module from the OBD port and disconnect the USB for a few seconds. This has happened to me about three times while trying to get the unit to work.

How to send GSMLOC details through sms

I tried many ways of storing the values but i cant
Pls help me in finding out a solution
I gave command

AT+CIPGSMLOC=1,1

It response me

OK

+GSMLOC : 0,77.012553,11.53257,2017/08/26

How can I send this response through sms ????????

minor bug in logger code

in config.h you state that OBD_ATTEMPTS can be set to 0 to never give up connection attempts, but that dous not happen. yur code needs to look like this instead:

} else if (attempts <= OBD_ATTEMPTS - 1 || !OBD_ATTEMPTS) {

How Can I send location within an SMS in sim800 GSM module?

Hello everyone!

I am using sim800 module. Using AT commands I am able to send SMS as well as get location of the sim but I want to send the location obtained using AT commands inside an SMS. Can anyone help me with the code? I'm attaching pics of my GSM module.

imag0875

imag0876

imag0879_burst002

Why not inheriting from Client

Hi Stanley,

I did tried some MQTT with the ONE+ using 2 libs:
PubSubClient and TinyGSM.

However, to instanciate we need to do this:

WiFiClient espClient;
PubSubClient client(espClient);

I think it could work if you derive your client from "Client.h" from Arduino, right?

I did a trial with the older version
class UDPClientSIM800 : virtual NullClient
to
class UDPClientSIM800 : virtual Client

It compiles. Any thought?

Datalogger not working

Hello,

I am unable to run the datalogger with the attached code here. I am unable to store any data into the SD card. I have verified this with the PC and OBD port too. Can you let me know if I have to make any specific changes in the code or any settings to log the required data.

Thank you.

Latest v4 DataLogger for Freematics does not compile

I get the following error when trying to compile from a clean pull of the whole repo (and copying the libraries into ~/Arduino/libraries:

In file included from /home/mack0242/Arduino/libraries/FreematicsONE/FreematicsONE.h:11:0,
                 from /home/CSEM/mack0242/Arduino/libraries/FreematicsONE/FreematicsONE.cpp:15:
/home/mack0242/Arduino/libraries/FreematicsONE/FreematicsSD.h:51:36: error: 'SD_O_RDONLY' was not declared in this scope
   File openNextFile(uint8_t mode = SD_O_RDONLY);
                                    ^
/home/mack0242/Arduino/libraries/FreematicsONE/FreematicsSD.h:23:19: error: 'SD_O_READ' was not declared in this scope
 #define FILE_READ SD_O_READ
                   ^
/home/mack0242/Arduino/libraries/FreematicsONE/FreematicsSD.h:76:50: note: in expansion of macro 'FILE_READ'
   File open(const char *filename, uint8_t mode = FILE_READ);
                                                  ^
/home/mack0242/Arduino/libraries/FreematicsONE/FreematicsSD.h:23:19: error: 'SD_O_READ' was not declared in this scope
 #define FILE_READ SD_O_READ
                   ^
/home/mack0242/Arduino/libraries/FreematicsONE/FreematicsSD.h:77:52: note: in expansion of macro 'FILE_READ'
   File open(const String &filename, uint8_t mode = FILE_READ) { return open( filename.c_str(), mode ); }

Changing FreematicsSd.h

#include <utility/SdFat.h>
#include <utility/SdFatUtil.h>

To

#include "utility/SdFat.h"
#include "utility/SdFatUtil.h"

I get these errors:

/tmp/arduino_build_378569/libraries/FreematicsONE/FreematicsSD.cpp.o (symbol from plugin): In function `SDLib::File::write(unsigned char)':
(.text+0x0): multiple definition of `SDLib::File::write(unsigned char)'
/tmp/arduino_build_378569/libraries/SD/File.cpp.o (symbol from plugin):(.text+0x0): first defined here

Overall, it looks like FreematicsSD has overlaps with the provided SD library. Please rectify this.

webserver hangs in v5 datalogger

Up to, say, a couple of months ago the internal webserver in datalogger worked ok and would be available both in AP and in station mode.

With today's build, the connection hangs and no output is returned:
Motion:0.58
Wakeup
File:/DATA/71.CSV
OBD...NO
Standby
ACC Bias:0.00/-0.00/-1.27
[56] Client IP: 192.168.4.2
[56] Socket closed, 0 connections

This happens also when only AP mode is enabled; tested with Firefox, wget and also raw telnet.
Can anyone else verify?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.