RasPiComm v3 almost ready

RasPiComm v3 missing headers

RasPiComm v3 missing headers

I assembled RasPiComm v3 and it all works. This should be the design for production. Sadly the new connectors for the RS-485 and RS-232 ports still need 2 (!) more weeks to deliver, I ordered them 2 weeks ago. I only have the 2-pin pluggable power header yet, and only one half (the pluggable screw-terminal also takes another 2 weeks). So the picture to the right is still missing the pluggable headers, but you get the idea of the new design.

I had to make room for the new (big) pluggable headers, so the outputs are now on 2mm pitch headers (not polulated). SPI and input are also 2mm pitch headers and also not polulated. If you need the inputs, outputs or SPI you just need to solder the headers. I think most useres wont need them, and if you do it is easy to retrofit.

I2C Header

RasPiComm OLED

Raspberry Pi with RasPiComm OLED

I changed the I2C header from through-hole to SMD, simply because the battery holder is now below this header to avoid collision with the S2 header of the Raspberry Pi. This will probably be a male connector on the production board.

Production
I know, what you are really interested in is the availability. Well, I already got the quote for the first batch, way off my initial calculation, but they screwed up the material costs. They now have my BOM and I’m waiting for another quote. So I’m still on it and hoping that I can place the order in one or two weeks.

About these ads

44 responses to “RasPiComm v3 almost ready

  1. PegWag August 23, 2012 at 4:39 pm

    This is exciting stuff. Like before Christmas. . .What is the *guesstimate* on our cost?
    Sorry, I don’t mean to be in your face . . .see my first sentence!
    peg

  2. rjeffriesRon K Jeffries August 23, 2012 at 4:55 pm

    Interested why you did not provide buffered inputs. Nice design! Will prolly buy at least one, when available.

    • Daniel Amesberger August 23, 2012 at 5:16 pm

      As you can see there is not much space left, I really tried to get the best out of this footprint. The inputs of version 3 have a zener diode for over-voltage protection, that’s ok for most applications.
      The RasPiComm Plus I’m already working on will have a lot more features (buffered inputs are one of them), and a larger footprint. But that will take until next year and depends on the RasPiComm success.

  3. Vicary August 23, 2012 at 7:52 pm

    Does it require drivers or software when working with these interfaces? Don’t have much experience on microchips.

  4. Lafriks August 23, 2012 at 9:22 pm

    Looks quite nice

  5. rudy1000 August 25, 2012 at 9:01 pm

    @Daniel:
    Could you tell me something about the overall heigh of the RaspPi + RasPiComm? This info is important for me because of selecting the right case for this combination.
    Hannes

    • Daniel Amesberger August 27, 2012 at 12:20 pm

      The height, measured from RPi PCB to the highest point on the RasPiComm is 20.5mm.
      I just designed a case for the Raspberry Pi and RasPiComm, it is currently printing on my Makerbot :-) It will be on thingiverse this week, so if you have access to a 3d printer, you can just print a case.
      According to your e-mail address you are based in Austria, if you are in Vienna you can take a look at Happylab, they have a cool 3d printer.

  6. Phil August 27, 2012 at 9:12 am

    any idea when its ready to sell ..
    cant wait for it :)

    what oled display are you using?

  7. notzippy August 27, 2012 at 5:22 pm

    Looking forward to pricing / availability, will you be doing a kickstarter ?

  8. Andreas Handler August 28, 2012 at 8:51 am

    Hallo Daniel,

    wird man den rspicomm bzw. das Display am I2C per auch per Java mit Hilfe einer libary ansprechen können?

    SG Andreas

    • Daniel Amesberger August 28, 2012 at 9:03 am

      Ja, es gibt ein C library, das unter Java anzusprechen ist kein Problem. Du kannst einfach System.load() (oder LoadLibrary()) aufrufen und danach auf die Funktionen zugreifen, prinzipiell etwa so:

      System.load(“i2c_oled.so”);
      oledPrint(“Hello World!”);

      • Andreas Handler August 30, 2012 at 6:59 am

        Danke für die rasche Antwort – > Genial!

      • Wolfgang Spieß July 15, 2013 at 4:05 am

        Hallo Daniel,
        gibt es die native Bibliothek für Java schon fertig zum Download, oder zumindest den C-Code, aus dem ich die native Bibliothek erzeugen kann?
        Vielen Dank
        Wolfgang

        • Daniel Amesberger July 15, 2013 at 8:40 am

          Hallo Wolfgang,
          eigentlich ist keine Bibliothek notwendig, du kannst einfach den Kernel Treiber installieren und dann direkt auf den seriellen Port (/dev/ttyRPC0) zugreifen um den RS485 Port zu nutzen. Hier ein Link zu den ersten Schritten, da wird alles erklärt: http://www.amescon.com/de/produkte/erste-schritte.aspx

          • Wolfgang Spieß July 15, 2013 at 11:28 pm

            Hallo Daniel,
            vielen Dank, funktioniert sehr gut. Für das Ansprechen der RS484-Schnittstelle verwende ich die Java-Bibliothek “JSSC”. Bei wiederholtem Verbindungsauf- und Abbau kommt es manchmal vor, dass der Port nicht gefunden wird, aber ich vermute den Fehler eher in JSSC. Vielleicht macht es den Port nicht immer sauber zu.
            Danke nochmal,
            Wolfgang

          • Wolfgang Spieß July 18, 2013 at 9:45 am

            Hallo Daniel,
            im vorliegenden Anwendungsfall ist es notwendig, dass unsere Software die Baudrate erkennen kann, mit der andere RS485-Geräte gerade sprechen. Wenn ich über einen USB-to-RS485-Adapter gehe, klappt das problemlos, denn dann empfange ich wirklich nur Daten, wenn ich die richtige Baudrate gewählt habe. Empfange ich nichts, weiß ich, dass ich die falsche Baudrate erwischt habe, und kann die nächste ausprobieren, usw., bis Bytes empfangen werden.
            Bei RasPiComm verhält es sich anders. Hier ist es ziemlich egal, mit welcher Baudrate der Port geöffnet wurde – es werden immer gültige Bytes empfangen.
            Kann ich auf irgendeinem Weg – z.B. durch Konfigurationseinstellungen – erreichen, dass nur Bytes empfangen werden, wenn diese mit der gewünschten Baudrate herein kommen?
            Danke,
            Wolfgang

            • Daniel Amesberger July 18, 2013 at 10:50 am

              Hallo Wolfgang,
              interessant, alle USB-Konverter die mir bekannt sind liefern Datenmüll wenn die falsche Baudrate gewählt wurde. Im Grunde könnte man bei einem framing error die Datenweiterleitung unterbinden. Ich finde das keine gute Lösung, denn wenn irgendetwas ankommt dann ist der Fehler üblicherweise schon einmal auf die Baudrate eingegrenzt. Allerdings werden wir uns mal den Treiber ansehen, wir könnten die Information des Framing Errors zur Verfügung stellen. Fehleinstellungen bei Baudrate und Start- Stop und Datenbits sollte man so erkennen. Vielleicht schaffen wir es das Feature im Kerneltreiber heute oder morgen dahingehend nachzurüsten.
              Bei solchen Fragen am besten bei uns am Forum posten, dann ist es auch für andere User gut zu finden (http://www.amescon.com/forum.aspx).
              Grüße aus Wien,
              Daniel

              • Wolfgang Spieß July 18, 2013 at 11:39 am

                Hallo Daniel,
                du hast recht – der USB-Adapter liefert Datenmüll, wenn die Baudrate nicht passt. Das erkennen wir uns reagieren entsprechend. Im Unterschied dazu liefert das RasPiComm aber häufig gültige Daten, zumindest dann, wenn das RasPiComm zuvor mit der korrekten Baudrate betrieben wurde.

                Beispielhafter Ablauf:
                – Habe Kommunikation auf der Leitung mit 115200 Baud
                – Öffne RaPiComm-Port mit 38400 Baud ==> nichts wird empfangen
                – Öffne RaPiComm-Port mit 76800 Baud ==> nichts wird empfangen
                – Öffne RaPiComm-Port mit 96000 Baud ==> nichts wird empfangen
                – Öffne RasPiComm mit 1125200 Baud ==> korrekte Bytes werden empfangen
                – Öffne RasPiComm wieder mit 96000 Baud ==> korrekte Bytes werden empfangen, obwohl falsche Baudrate
                – Öffne RasPiComm wieder mit 76800 Baud ==> korrekte Bytes werden empfangen, obwohl falsche Baudrate
                – Öffne RasPiComm wieder mit 38400 Baud ==> nichts wird empfangen

                Ob eine Baudrate gültige Bytes liefert, hängt also davon ab, welche Baudrate zuvor verwendet wurde. Klingt komisch, aber meine Logdateien zeigen das recht klar.
                Es wirkt fast so, als habe der RasPiComm ein Gedächtnis oder eine Form von Intelligenz, dass er bis zu einer gewissen Grenze bei ungültiger Baudrate auf eine zuvor erfolgreich eingestellte Baudrate zurück springt.
                Allerdings habe ich nicht die technische Ausrüstung (Oszilloskop o.ä.), um festzustellen, ob ausgehende Bytes mit der gewünschten Baudrate oder mit einer anderen rausgehen. Dem Verhalten nach scheinen die anderen Geräte uns zumindest gut zu verstehen.

                Viele Grüße
                Wolfgang

  9. Robin October 9, 2012 at 9:08 pm

    Hi,

    You said this is open source? Where can we download the Eagle .sch and .brd files?

  10. Roberto October 23, 2012 at 12:31 pm

    Hi Daniel,
    Is it possible to buy one RaspiComm v3 or one pcb?
    Roberto

  11. mephistopheles December 10, 2012 at 2:09 pm

    Hi,
    ich bin speziell an rs485 unter Python interessiert.
    Gibt es diesbezüglich Anleitungen und Beispiele?

  12. Mariusz February 16, 2013 at 11:53 pm

    When it will be available at RS or where can I buy it @ Poland?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 200 other followers

%d bloggers like this: