Coder Social home page Coder Social logo

camino's People

Contributors

jpagliaccio avatar n-wach avatar notnotquinn avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

camino's Issues

Analog reads is returning values 0-65535 instead of 0-1023

Analog reads is returning values 0-65535 (in increments of 257?) when it should be returning 0-1023.
Can you take a look? I can test?

void _analogRead(byte dataLength, byte *dataArray) {
  int value = analogRead(dataArray[0]);
  byte arr[2] = {(byte) (value % 256), (byte) value};
  returns(2, arr);
}

Thanks

Callable added: get_nth_call - no reply

Hey Nathan, One more item. This happens each time when connecting. I am running with the latest library.

Callable added: get_nth_call
Got error on attempt 1/3: Nothing sent when a response was expected.

Thanks. Please let me know and I will test.

Arduino Mega 2560 bad USARTN_RX_vect & USARTN_UDRE_vect defines.

Hello,

While using this library in conjunction with an Arduino Mega 2560, the following warnings are given during compilation:

'USART_RX_vect' appears to be a misspelled 'signal' handler, missing '__vector' prefix [-Wmisspelled-isr]
'USART_UDRE_vect' appears to be a misspelled 'signal' handler, missing '__vector' prefix [-Wmisspelled-isr]

It seems that despite the comment on lines 29&30 of Camino.cpp,
i.e.

29 #define USARTN_RX_vect USART_RX_vect // no number for some reason
30 #define USARTN_UDRE_vect USART_UDRE_vect // no number for some reason

The ATmega2560 does in fact use a numbering convention (source).

For the ATmega2560 Port 0 should be:

#define USARTN_RX_vect USART0_RX_vect // for some AT devices, there is no number.
#define USARTN_UDRE_vect USART0_UDRE_vect // for some AT devices, there is no number.

Without this change obviously Atmega2560 won't respond to requests:

Callable added: num_calls
Callable added: get_nth_call
Got error on attempt 1/3: Nothing sent when a response was expected.
Got error on attempt 2/3: Nothing sent when a response was expected.
Got error on attempt 3/3: Nothing sent when a response was expected.
Traceback (most recent call last):
  File "/camino.py", line 100, in send_command
    response = self.read_packet()
  File "/camino.py", line 39, in read_packet
    header_byte_1 = self.read_byte()
  File "/camino.py", line 34, in read_byte
    raise CaminoException(
camino.CaminoException: Nothing sent when a response was expected.

Hope this helps!

Analog write value

Hey Nathan,

Starting line 393 in Camino.cpp, analog write only accepts a value between 0-254. Shouldn't the write value be dataArray[1]. It seems to work when I test.

Analog read is 10 bit, 0-1023
Analog write is 0-255

void _analogWrite(byte dataLength, byte *dataArray) {
  // analogWrite(dataArray[0], dataArray[1]*256 + dataArray[2]); // was this 
  analogWrite(dataArray[0], dataArray[1]);  // Should be this? 
}

Thanks

Execution rate

It looks like each communication takes 50 ms. Is that what you see? Any way to speed that up? Here is the Python code. I am on an Arduino MEGA 2560 at 115200 baud with your default ino file and just the baud rate changed.

while(1):
	n = n + 1 		
	tms = time.time() * 1000
	arduino.digital_read(9) # 50 ms 
	arduino.say_hi(16, out=str) # 50 ms 
	a0 = arduino.analog_read(0, out=int) # 50 ms
	arduino.pin_mode(16, 1) # 50 ms  
	time.sleep(.005) # add 5 ms  
	tms = time.time() * 1000 - tms 
	print('n =', n, 'mills =', int(tms))

Thanks for sharing the code and your help.

Analog read is coded as digitalRead()

Nathan, Nice work.

So question, line number 397 in Camino.cpp was this:
int value = digitalRead(dataArray[0]);
and I was getting only 1 byte values.

I changed it to analogRead:

int value = analogRead(dataArray[0]);
and now I am getting 0-65535 for 0-5V.
That's what you intended right?

I am on a Mega2560.
Thanks. Again, nice work.

Camino on Arduino MICRO

Hey, Nathan,

Thank you for your Camino software.
I used it on an Arduino UNO R3 and it worked great.
I then tried Camino on the Arduino MICRO but encountered problems:

  1. The test program Test.ino could not be compiled.
    Changing the PORT = 1 value in Camino.h helped.
    The program compiled and could be loaded into the Arduino.
  2. In Python but in the line: arduino = Arduino(serial),
    it prints an error: "Got error on communication attempt 1/3: Nothing sent when a response was expected."
    I have not yet been able to figure out the error.
    My machine is running Linux Mint.
    I am using Arduino IDE 2.3.2 and for Python IDLE Shell 3.10.12.
    Do you know any way to fix this problem?

Thank you for your time and willingness.

Problem on uploading in Arduino DUE

Dear all, I am having trouble in trying to use the library in Arduino Due boards.
Is it possible to use it with DUE boards?

See my error message below.

Arduino: 1.8.19 (Linux), Board: "Arduino Due (Programming Port)"

In file included from /home/allison/.arduino15/packages/arduino/hardware/sam/1.6.12/cores/arduino/wiring_private.h:33:0,
                 from /home/allison/Arduino/libraries/Camino/src/Camino.cpp:1:
/home/allison/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/arm-none-eabi/include/stdlib.h:67:5: error: expected unqualified-id before 'int'
 int _EXFUN(abs,(int));
     ^
/home/allison/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/arm-none-eabi/include/stdlib.h:67:5: error: expected ')' before 'int'
/home/allison/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/arm-none-eabi/include/stdlib.h:67:5: error: expected ')' before 'int'
/home/allison/Arduino/libraries/Camino/src/Camino.cpp: In member function 'void Camino::begin(long int, byte)':
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:20:29: error: 'UCSR0A' was not declared in this scope
   #define UCSRNA            UCSR0A
                             ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:160:3: note: in expansion of macro 'UCSRNA'
   UCSRNA = 1 << U2XN; // enable double rate (2X flag)
   ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:23:29: error: 'U2X0' was not declared in this scope
   #define U2XN              U2X0
                             ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:160:17: note: in expansion of macro 'U2XN'
   UCSRNA = 1 << U2XN; // enable double rate (2X flag)
                 ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:24:29: error: 'UBRR0H' was not declared in this scope
   #define UBRRNH            UBRR0H
                             ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:161:3: note: in expansion of macro 'UBRRNH'
   UBRRNH = clockRate >> 8;
   ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:25:29: error: 'UBRR0L' was not declared in this scope
   #define UBRRNL            UBRR0L
                             ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:162:3: note: in expansion of macro 'UBRRNL'
   UBRRNL = clockRate & 0xff;
   ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:22:29: error: 'UCSR0C' was not declared in this scope
   #define UCSRNC            UCSR0C
                             ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:165:3: note: in expansion of macro 'UCSRNC'
   UCSRNC = 0x06;
   ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:21:29: error: 'UCSR0B' was not declared in this scope
   #define UCSRNB            UCSR0B
                             ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:168:7: note: in expansion of macro 'UCSRNB'
   sbi(UCSRNB, RXENN);
       ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:26:29: error: 'RXEN0' was not declared in this scope
   #define RXENN             RXEN0
                             ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:168:15: note: in expansion of macro 'RXENN'
   sbi(UCSRNB, RXENN);
               ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:168:20: error: 'sbi' was not declared in this scope
   sbi(UCSRNB, RXENN);
                    ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:27:29: error: 'TXEN0' was not declared in this scope
   #define TXENN             TXEN0
                             ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:169:15: note: in expansion of macro 'TXENN'
   sbi(UCSRNB, TXENN);
               ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:28:29: error: 'RXCIE0' was not declared in this scope
   #define RXCIEN            RXCIE0
                             ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:172:15: note: in expansion of macro 'RXCIEN'
   sbi(UCSRNB, RXCIEN);
               ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp: In member function 'void Camino::sendResponsePacket()':
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:36:29: error: 'UDR0' was not declared in this scope
   #define UDRN              UDR0
                             ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:224:3: note: in expansion of macro 'UDRN'
   UDRN = packetArray[packetTransmitIdx];
   ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:21:29: error: 'UCSR0B' was not declared in this scope
   #define UCSRNB            UCSR0B
                             ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:228:7: note: in expansion of macro 'UCSRNB'
   sbi(UCSRNB, UDRIEN);
       ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:37:29: error: 'UDRIE0' was not declared in this scope
   #define UDRIEN            UDRIE0
                             ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:228:15: note: in expansion of macro 'UDRIEN'
   sbi(UCSRNB, UDRIEN);
               ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:228:21: error: 'sbi' was not declared in this scope
   sbi(UCSRNB, UDRIEN);
                     ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp: In function 'void USART0_RX_vect()':
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:36:29: error: 'UDR0' was not declared in this scope
   #define UDRN              UDR0
                             ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:265:7: note: in expansion of macro 'UDRN'
   c = UDRN;
       ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp: In function 'void USART0_UDRE_vect()':
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:21:29: error: 'UCSR0B' was not declared in this scope
   #define UCSRNB            UCSR0B
                             ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:352:9: note: in expansion of macro 'UCSRNB'
     cbi(UCSRNB, UDRIEN);
         ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:37:29: error: 'UDRIE0' was not declared in this scope
   #define UDRIEN            UDRIE0
                             ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:352:17: note: in expansion of macro 'UDRIEN'
     cbi(UCSRNB, UDRIEN);
                 ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:352:23: error: 'cbi' was not declared in this scope
     cbi(UCSRNB, UDRIEN);
                       ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:36:29: error: 'UDR0' was not declared in this scope
   #define UDRN              UDR0
                             ^
/home/allison/Arduino/libraries/Camino/src/Camino.cpp:359:3: note: in expansion of macro 'UDRN'
   UDRN = packetArray[packetTransmitIdx];
   ^
exit status 1
Error compiling for board Arduino Due (Programming Port).

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.