Arduino-CmdMessenger icon indicating copy to clipboard operation
Arduino-CmdMessenger copied to clipboard

Platformio+Digispark compatible solution

Open dontsovcmc opened this issue 8 years ago • 1 comments

I want to use CmdMessenger with Digispark attiny85.

They have their own Stream class, Print classes.. .

  1. First of all I add some functions to Stream class.
int timedRead()
virtual size_t readBytes(char *buffer, size_t length)
  1. I spend a lot of time to find a problem why CmdMessenger can't hear me (only UnknownCommand handler called) ... (I connect Arduino to COM port and want to send-receive bytes in Terminal)

I was angry when I found solution:

Send command 0 
30 3B
Receive command 1
01 2C 33 3B

Digispark made print function without default argument=DEC... for all types except char.. For compatible we should add DEC everywhere in CmdMessenger :(.

comms->print(cmdId, DEC);

and etc

  1. Attiny85 doesn't want to start with CmdMessenger cause little memory. I change defines:
#define MAXCALLBACKS        5   // The maximum number of commands   (default: 50) 
#define MESSENGERBUFFERSIZE 20   // The length of the commandbuffer  (default: 64)
#define MAXSTREAMBUFFERSIZE 20  // The length of the streambuffer   (default: 64)

and it works fine :)

There was difficult to find solutions cause:

  1. There is no protocol description or trace. Please add them.
  2. There is no tests written on "C" or "Python" :)

dontsovcmc avatar Nov 20 '17 17:11 dontsovcmc

There are errors in Platformio libraries for "digispark-tiny" platform :(

dontsovcmc avatar Nov 22 '17 14:11 dontsovcmc