Timer conflict with Arduino Leonardo - timer

I've created a Quadcopter based on an Arduino Leonardo, and im using the Servo.h library to control the motor output. I'm now installing a cheap RF Link kit as the communication for the first wireless test flight, and i've downloaded VirtualWire library. It works flawlessly, but it uses the same timer as servo library.
All the libraries i've found uses timer1, and it seems way over my capabilities to change the source code to use another timer. Im also not sure that timer2 has a high enough resolution to handle the communication (timer1 is 16bit, timer2 is 8bit).
Have anyone encountered this problem before? Anyone with some good suggestions to how i can get around this problem?
All suggestions and tips are appreciated!

I swapped the receiver to a Arduino UNO, and used the ServoTimer2 library
http://forum.arduino.cc/index.php?topic=21975.0
Its not working straight out of the box, so you have to change
extern "C" {
// AVR LibC Includes
#include <inttypes.h
#include <avr/interrupt.h>
#include <WConstants.h>
}
to
#include<Arduino.h>
This is not a perfect solution, but it works for now.

Related

How to write Linux kernel module for serial communication to arduino?

I have got Arduino MEGA 2560. What I would like to do is to send a signal to Arduino via serial port to light specified LED up. However, I cannot find any documentation about this. What steps should I follow?
I think first, I need to compile the driver of Arduino and add it to Linux kernel. Second, I have to find some header files to use them in module. Then, I have to find functions to start serial communication and to light LEDs up. However, these are just my thoughts.
Any advice will be appreciated.
The arduino-mega (the one with ATmega2560) documentation is here:
https://www.arduino.cc/en/Main/ArduinoBoardMega2560#documentation
The serial communication via UART:
https://www.arduino.cc/en/Reference/SoftwareSerial
Since there are other ways for serial communication with the ATmega please read the documentation [above] and compare that to your exercise sheet.
I think such a kernel module is already available - and used by the arduino-ide.

Arduino code Wire ported to Atmel Xplained Mini to communicate with DS3231

I am taking Arduino Prototype code used for a DS3231 RTC and taking it to an embedded platform that does not directly support Arduino code (right now that is the Atmel Xplained Mini). Is there a way for me to create an equivalent program without writing an entire I2C protocol and the entire data communication from scratch? There must be an overlapping library/header/code block that I can adapt to my purpose.
As an example I am looking to make the code here work on the Atmel Xplained Board. The code should be pretty simple, what I need is for the DS3231 to tell the MCU the time when it asks for it. I can do the manipulation of the date/time myself, it is getting that information on a non-Arduino platform that is the road block for me.
Arduino has an existing wiring library that facilitates I2C communication, most professional development frameworks aren't quite so simple but are also more full-featured. I'm assuming you are using Atmel Studio, you'll want to look at the TWI (two-wire interface) documentation for doing I2C communication.
AVR315: Using the TWI Module as I2C Master
You can copy TWI_Master.c and TWI_Master.h to your project and use these for I2C communication. That is what I've typically done in the past.
The demo code that goes with this app note can be found here, main.c has an example of the usage of this I2C driver:
AVR315 Demo Code

ESP8266, ESP-01, uploading firmware, module led shine/lights weakly

My problem pertains module ESP8266, specifically version ESP-01.
When I have uploaded firmware (nodemcu) to the module then it works all right.
But later, I found out that the module is not responding. Even after so much restarts.
In addition, the led on the module shines/ligths very weakly.
I don't know where is the problem. Maybe with power supplying but I am using usb-to-serial converter which provides 5V as well as 3V. In addition I am using a voltage regulator from 5V to 3.3V because I wanted to be sure.
Thank you very much.
The problem is that most usb-to-serial interfaces can't provide enough current for the ESP8266 which could draw peak currents of about 320mA. You must use an external power supply.

How can I read in M-bus metering data with an Arduino Uno?

I am trying to send data from a Kamstrup Multical 601 to an Arduino Uno using the M-bus protocol.
I am considering trying to use the libmbus c libraries to do this. However, I do not have a lot of experience in c programming so was wondering if:
you think this is a realistic/achievable approach?
anyone could suggest an alternative/easier approach?
The main chip on the Arduino Uno is the Atmel Atmega382P-PU.
After getting the data to the Arduino I aim to perform some calculations and send data to an LCD (this I think I can do).
On the Arduino Website there is a short how-to about the use of external C-Libraries with Arduino.
Note that you cannot simply connect M-Bus with a RS-232 interface. There is a so called "level-shifter" device necessary inbetween to do the "electrical transition". See the EN 13757-2 standard doucment for what this device is exactly doing with the signal. Without such a device you won't get any word out of your M-Bus device.
The library you link to appears to be for Linux. The Arduino, of course, doesn't run Linux so a library won't compile for it directly.
You should probably try implementing the library yourself, but using the Arduino's standard libraries to access ports and so on.

OMAP SPI controller

Does anyone ever develop some application to control the spi device on OMAP3? I can load the spi driver "mcspi", but I don't know how to use it.
As of at least PSP 3.00.00.04, the mcspi driver is integrated with the Linux spi stack.
Turn on
CONFIG_SPI and CONFIG_SPI_OMAP24XX
in your kernel.
Here's how to use spi devices, in general.
There is also the spidev driver, which presents a char device to userspace, but it's experimental.
Ok So first I need to apologize for my previous shoot from the hip answer.
I too have now started looking into trying to get the McSPI's working and it has been some what painful. TI does not have lot of documentation, and I still haven;t been successful in getting any of the McSPI's to actually work, yet. But I thought I would post a link to the beagle board google discussion on the subject, as it appears they have been successful at getting at least McSPI3 working on the OMAP3530.
http://groups.google.com/group/beagleboard/browse_thread/thread/15d9488c1ec314ef/5ca06c67ff438106?q=mcspi3#5ca06c67ff438106

Resources