Joined
Last Online
Recent Posts
posted in Firmware read more

Any news on the hardware sleep? This would be quite important for daily use...

Hardware Sleep
To allow the CANBus Triple to stay powered up and use small amounts of power we're implementing sleep mode on the Atmega MCU, BLE112, and MCP2515 CAN controllers. More on this coming soon.

posted in Howto read more

Hi,

I would like to send out a CAN message every time the CBT boots up. So I wrote a function in my middleware class and would like to call it from the Arduino setup function. However I am not able to call that function...
How should I call my function from the setup routine or how should I send out a message when the CBT boots up?

Thanks,

Reto

posted in General Discussion read more

For others having the same issue: touchscreen works and the mouse wheel is supposed to work. Dragging, scrolling or page up/down does not work. Kind of hard on a laptop without touchscreen...

posted in General Discussion read more

Hi,

It does not seem to be possible to scroll down in the Packet Logger. The sorted view is nice but how can I scroll down to see all the messages? Am I missing something?

Thanks,

Reto

posted in Firmware read more

Have you tried Shift-Key+Compile to rebuild all?

posted in Howto read more

In the past days Derek helped me a lot in understanding how middleware works and how to communicate with a car. I want to share here what I learned and hope this will be helpful for others as well.

To receive and send messages you write your own middleware. "ChannelSwap.h" and "ServiceCall.h" are good examples to have a look at in the beginning.

For your own middleware you create a new file "YourMiddleware.h". In "CANBusTriple.ino" you add the following lines:

<code>#include "YourMiddleware.h"</code>
<code>YourMiddleware *yourmiddleware = new YourMiddleware( &writeQueue );</code>

In the <code>Middleware *activeMiddleware[] = {</code> block you add:
<code>yourmiddleware,</code>
to the list.

Then move over to your "YourMiddleware.h" file. It should look like this:

<code>#include "Middleware.h"

class YourMiddleware : public Middleware
{
private:
QueueArray<Message>* mainQueue;
public:
void tick();
Message process( Message msg );
YourMiddleware( QueueArray<Message> q );
void sendMyMessage();
void commandHandler(byte
bytes, int length);
unsigned long lastMsgSent;
};

YourMiddleware::YourMiddlware( QueueArray<Message> *q ) {
mainQueue = q;
lastMsgSent = millis();
}

void YourMiddleware::tick(){
if((millis() > lastMsgSent + 100) || (millis() < lastMsgSent)){ //avoid flooding the bus, only call the sendMyMessage method every 100 milliseconds
sendMyMessage();
lastMsgSent = millis();
}
}

void YourMiddleware::commandHandler(byte* bytes, int length){}

Message YourMiddleware::process( Message msg )
{
//msg.busId
//msg.frame_id
//msg.frame_data[0] to msg.frame_data[7] do what ever you want with the messages received...
return msg;
}

void YourMiddleware::sendMyMessage(){
Message msg;

//msg.busId
//msg.frame_id
//msg.frame_data[0] to msg.frame_data[7] put whatever data you want in the message to send...

msg.length = 8;
msg.dispatch = true;
mainQueue->push(msg);
}
</code>

posted in Howto read more

@KidTurbo: Holding the 'Shift' Key and clicking compile to recompile the libraries might work as well...

posted in Firmware read more

Hi,

if your car uses the 29-bit version of the CAN protocol you have to download the 29-bit version of the software: https://github.com/CANBus-Triple/CANBus-Triple/tree/29-bit-dev
Then uncomment <tt>//#define SUPPORTS_29BIT</tt> in CANBus.h, line 158.

If you compiled the firmware before, hold the 'Shift' Key and click compile to recompile the libraries.

Thanks to Derek for his help with this.

Reto


Looks like your connection to CANBus Triple was lost, please wait while we try to reconnect.