V3 prototypes for sale

Hi,
I need to get rid of my V3 prototypes !

I’ve got exactly 3 (all gone) fully assembled and tested boards + RGB LED matrix. So if anybody wants them, “The early bird catches the worm”.

I’d be happy to give them away for 25€ (33USD) per piece + shipping.

v3_offer.png

You will need a USB/TTL serial adapter to program it with the Arduino IDE. The prototypes don’t come with auto reset yet, so it’s the same procedure as with simple breadboard clones.

Uploading code by manually resetting the board:

If you use a USB/TTL converter with RX/TX LEDS (e.g. USB BUB board from moderndevice.com – It turns out it only has an RX LED, which doesn’t help here), press and hold the reset button on the board, press upload in the IDE. As soon as the LEDs flicker release the reset button. Done.

If you don’t have LEDS, change this in the Arduino IDE’s “preferences.txt” file:

On linux the file is located in “$HOME/.arduino/”. On Windows XP you can find it in “C:\Documents and Settings\USERNAME\Application Data\Arduino\”. Then start the IDE (older versions than V17 would only show the debugging data on a terminal/dos-window. On Winblows this required starting it with “run.bat”). When you press “upload”, a lot of build messages will appear in the terminal. Watch out for these lines:

As soon as they appear release the reset button and it will upload. With just a little practice this works perfectly fine.

See comment #4 for links to USB/TTL converters.
Also have a look at this if you already have an Arduino Diecimila/Duemilanove.

This entry was posted in Arduino., Electronics. and tagged , , , , . Bookmark the permalink.

28 Responses to V3 prototypes for sale

  1. jafoca says:

    What is the meaning of having “Yellow”, “Blue Ultrabright”, “Red” next to them there? As we discussed, I am interested but I don’t think I have the correct FTDI part to interface with it.

  2. robert says:

    I’ve updated the image. The color just refers to the onboard status LED.

    Time to get “the part” ;-)

  3. jafoca says:

    what exactly would I need?

    Is the UartSB (from Seeed Studio) the correct piece to interface a PC with it?

  4. jafoca says:

    you said before that you run yours with the Arduino bootloader on board… Does that mean that with above cable + arduino bootloader, the matrix can be programmed directly from the arduino IDE?

    I am almost convinced.

  5. robert says:

    Of course! That is the whole point, isn’t it ?

    Having to use a full blown programmer all the time sucks. I’ve posted a new video to my youtube collection, so you can finally believe me.

  6. andy says:

    HI,
    if you have 2 left il buy them can i use paypal??

    Thanks

  7. robert says:

    OK. I accept paypal.

  8. andy says:

    ok can i buy on friday?? as have MOT for car and not sure how much it is cost.

    Also do you know if they can be made to wait for data like the sparkfun backpacks?

  9. robert says:

    They can receive serial data on the RX line using Serial.read() from a computer. This way I built the load monitor example I blogged about. You can also build a network of these using I²c and the Arduino’s Wire library. To hook it up to your computer you need an adapter like mentioned in comment #4. If you have RS232 ports on your computer you need a voltage converter to connect it, so it doesn’t fry. A home-made variant look like this: ( http://www.arduino.cc/en/Tutorial/ArduinoSoftwareRS232 ).

  10. andy says:

    can i run them off an arduino for now?

  11. andy says:

    Hi,

    i can send payment tonight if you have 2 left still im also getting the adapter today :)

  12. robert says:

    @andy

    Yes you CAN use a normal arduino as an adapter! I hadn’t thought of that. See the next post for a short howto. Of course I have 2 left :-)

  13. andy says:

    have you set up paypal? if so send the payment request to ( email removed to avoid spam )

    thanks

  14. andy says:

    Hi rob,

    il send the payment tomorrow evening :)

    cant wait to get them, i would definalty like two more boards minus the matricies in the futer

    Thanks

  15. andy says:

    hi rob,

    sent the payment you requested, and my car failed as usuall lol

  16. samsnet says:

    Did I just get the last one, or is this a whole new batch?

    How would I daisy-chain 4 of these together and run it from my computer using Processing?

    thanks

  17. robert says:

    Hi,

    No, I didn’t offer any of these prototypes on Etsy. That was a one time thing and also included a LED matrix.

    I haven’t used the Processing language before, but basically you’d have to do is somewhat like this ( http://processing.org/reference/libraries/serial/Serial_write_.html ) :

    // — cut — processing —
    // import libraries:
    import processing.serial.*;

    Serial myPort; // serial port instance
    char data;

    void setup() {

    // list all the serial ports:
    println(Serial.list());

    // based on the list of serial ports printed from the
    // previous command, change the 0 to your port’s number:
    String portnum = Serial.list()[0];

    // initialize the serial port.
    myPort = new Serial(this, portnum, 9600);
    }

    void draw() {
    data = ‘0’;
    myPort.write(data);
    delay(500);
    data = ‘1’;
    myPort.write(data);
    delay(500);
    }
    // — END —

    // — cut — arduino, serial listener, I²C master —
    #define LED 4
    #define wire_slave_1_addr 0x12
    #define wire_slave_2_addr 0x13
    #include <Wire.h>

    void setup(void) {
    pinMode(LED,OUTPUT);
    blink_led();
    Serial.begin(9600);
    Wire.begin(); // join i2c bus as master (address optional for master)
    }

    void loop(void) {
    byte data_in = 0;
    if ( Serial.available() ) {
    data_in = Serial.read();
    }
    if ( data_in == ‘0’ ) {
    digitalWrite(LED,LOW); // turn local LED off
    Wire.beginTransmission(wire_slave_1_addr);
    Wire.send(0x00); // turn remote LED off
    Wire.endTransmission();
    Wire.beginTransmission(wire_slave_2_addr);
    Wire.send(0x00); // turn remote LED off
    Wire.endTransmission();
    }
    else if ( data_in == ‘1’ ) {
    digitalWrite(LED,HIGH); // turn local LED on
    Wire.beginTransmission(wire_slave_1_addr);
    Wire.send(0x01); // turn remote LED off
    Wire.endTransmission();
    Wire.beginTransmission(wire_slave_2_addr);
    Wire.send(0x01); // turn remote LED off
    Wire.endTransmission();
    }
    else {}
    }

    void blink_led(void) {
    digitalWrite(LED,HIGH);
    delay(1000);
    digitalWrite(LED,LOW);
    }
    // — END —

    // — cut — arduino, I²C slave —
    #define LED 4
    #define wire_slave_addr 0x12 // set to 0x12 or 0x13 on different boards
    #include <Wire.h>

    void setup(void) {
    pinMode(LED,OUTPUT);
    blink_led();
    Wire.begin(wire_slave_addr);
    Wire.onReceive(receiveEvent);
    }

    void loop(void) {
    }

    void receiveEvent(int dummy) {
    byte data_in = 0;
    if ( Wire.available() ) {
    data_in = Wire.receive();
    }
    if ( data_in == 0x00 ) {
    digitalWrite(LED,LOW);
    }
    else if ( data_in = 0x01) {
    digitalWrite(LED,HIGH);
    }
    else {}
    }

    void blink_led(void) {
    digitalWrite(LED,HIGH);
    delay(1000);
    digitalWrite(LED,LOW);
    }
    // — END —

    Of course this is just a very very simple example to get the idea. Most of the code I used for it can be found on this blog. It should be commented well enough to get the idea of what’s going on inside.

  18. robert says:

    So if you want to build a chain of 4, you’d have to create a protocol that can deal with data packages. Maybe something like this:

    – start byte (1 byte)
    – packet length ( N+3 bytes ) <-- how much payload the board has to read - target board number (1 byte) - payload data (N bytes) - stop byte (1 byte) The first board that's connected to the PC and is head of the chain would then decode and forward to the slave boards on the I²C bus. You'd section the payload section into a command and a data section. Depending on e.g. the first byte of the payload data section, a target board would select a certain function and pass the remaining data to it. That way you could e.g. send 0x01 for "set_column(column,R,G,B)" and the following 4 bytes would be the values for column,R,G,B. pseudo code: switch(in_buffer[0]) { case 0x01: set_column(in_buffer[1],in_buffer[2],in_buffer[3],in_buffer[4]) break; case 0x02: /* do something else */ break; default: }

  19. Pingback: My 2µF » Using a standard Arduino to program V3 Matrix boards

  20. Diego Rodriguez says:

    Im working on assembling one of your never boards and have parts 1-6 installed. I am using USB BUB II from moderndevice as my bootloader, but am sorta confused as to what i need to do. Could i get your code used for the BUB tutorial video.

    • robert says:

      I’ll have a look at the video. It’s been a while. If I can find it, I’ll post a link.

      Sorry for answering late, your comment was trapped in the spam folder.

  21. morzer says:

    I can’t found code V3_x_boards_test in https://github.com/madworm/8x8_RGB_LED_Matrix_Controller, can you send me the code?

Comments are closed.