Show Posts
Pages: [1] 2 3 ... 18
1  Using Arduino / Networking, Protocols, and Devices / Re: what is the best protocol to connect more than 512 devices to an arduino?? on: Today at 11:15:17 am
I2C only has 127 addresses and some of those are reserved for other purposes and really aren't available.
The limitation of I2C comes from bus capacitance. That includes also the capacitance each device on the bus adds. Even with a bus extender you have to find a balance between overall bus length and number of devices 100+ devices AND 300 ft of bus lengt is rather unrealistic aside from falling sort for the number of devices you want to connect.

 I am not aware of any low cost bus system that can accommodate 512 devices.
2  Using Arduino / Networking, Protocols, and Devices / Arduino Ethernet Bonjour / ZeroConf Networking Library on: April 19, 2014, 07:34:25 am
Over the last few months I've been updating the Arduino EthernetBonjour library still available online at The original library was written for Arduino 0017 and required separate libraries for DNS and DHCP. With Arduino 1.x these are not required anymore as they are part of the Arduino Ethernet library.

The main reason for the overhaul is that the original library made 50+ calls directly to the W5100 Ethernet chip and as such was very hardware dependent. I had already upgraded it to work with Arduino 1.x and also to work  with the W5200  Ethernet Chip found for example on the WIZ820io Ethernet Module.

The new library is more or less hardware independent. Bonjour and its underlying mechanisms mDNS and DNS-SD use UDP as its base protocol. As such the overhauled library only works with calls to the read/write methods from the EthernetUDP. This should greatly help to adapt it to other hardware and I am hoping for support from the community. The CC3000 from Texas Instruments would be a good candidate.

The changes to the Bonjour library also necessitated the addition of a routine to the EthernetUDP library in order to allow sending UDP multicast messages, required to implement mDNS and DNS-SD. This has been very similarly discussed on the Arduino forum over a year ago

EthernetUDP.h needs these lines aded in the sensible places:

virtual uint8_t beginMulti(IPAddress, uint16_t); // initialize, start listening on specified port. Returns 1 if successful, 0 if there are no sockets available to use Sending UDP packets
friend class EthernetBonjourClass;

EthernetUDP.cpp need this added routine:

/* Start EthernetUDP socket, listening at local port PORT */
uint8_t EthernetUDP::beginMulti(IPAddress ip, uint16_t port) {

  for (int i = 0; i < MAX_SOCK_NUM; i++) {
    uint8_t s = W5100.readSnSR(i);
    if (s == SnSR::CLOSED || s == SnSR::FIN_WAIT) {
      _sock = i;

  if (_sock == MAX_SOCK_NUM)
    return 0;

  byte mac[] = {  0x01, 0x00, 0x5E, 0x00, 0x00, 0x00 };

  mac[3] = ip[1] & 0x7F;
  mac[4] = ip[2];
  mac[5] = ip[3];

//  byte mac[] = { 0x01, 0x00, 0x5e, 0x00, 0x00, 0xfb };

  W5100.writeSnDIPR(_sock, rawIPAddress(ip));
  W5100.writeSnDPORT(_sock, port);

  _remaining = 0;

  socket(_sock, SnMR::UDP, port, SnMR::MULTI);

  return 1;

As noted in the documentation on the original web site, the library compiles to a relatively large chunk of code and is aimed at tiger boards with more flash and ram memory. I don't own an Arduino Mega and in recent projects only have used Paul Stoffregen's Teensy boards .
The Examples provided in the library compile and work out of the box with a Teensy++2 <-> WIZ812MJ  and with a Teensy 3 <-> WIZ820io.

The new library is available here:
3  Using Arduino / LEDs and Multiplexing / Re: 10 W LED with Tinkerkit MOSFET on: March 05, 2014, 07:32:11 pm
8,4V DC - regulated ?  (should be)
Put a capacitor parallell to led.
PWM dutycycle out to MOSFET is 0/255..255/255
Post code and schematic..

It is the current that needs to be kept constant, not the voltage. Otherwise you'll kill the LED in time.
4  Using Arduino / Networking, Protocols, and Devices / Re: Reading a OSC message from Arduino on: March 03, 2014, 11:10:42 pm
You am actually have more luck using this library for your Ethernet shield :

It's API looks much closer to the Ethernet library than the on you linked to.
5  Using Arduino / Networking, Protocols, and Devices / Re: Reading a OSC message from Arduino on: March 03, 2014, 06:58:35 pm
there are several reasons why this does not work:

1. The readme on the CNMat site says "- Sends and receives OSC packets over transport layers that implements the Arduino Stream Class such as Serial and  Ethernet UDP" I don't think the ENC28J60 library does that. EthernetUDP is part of the Ethernet library that works with the Ethernet Shield or in general with Shields and embedded Ethernet Modules that use an Wiznet W5100 or W5200 chip.
In essence the library that comes with the ENC28J60 would have to implement the pure virtual methods defined in  UDP.h. I haven't looked at it in detail but, again, I don't think it does that.

2. In order to use the OSCuino library you first have to receive a UDP package before you can fill the OSC message object with  msg.fiill.  Here is a little code snippet from one of my sketches that shoes how to receive a UDP packet and then fill the OSCmessage with msgIN.fill and then parse and route it to a callback function with msgIN.route().

void msgReceive(){
OSCMessage msgIN;
int size;
if((size = Udp.parsePacket())>0){
msgIN.route("/analog", handleAnalog);
msgIN.route("/digital", handleDigital);
6  Development / Other Software Development / Re: Windows/Linux/Mac Eclipse plugin to compile and upload arduino sketches on: March 01, 2014, 08:04:39 am
I have written detailed installation instruction for Mac users here:

These are to be followed precisely. If it says Arduino 1.5.2 then don't attempt to use 1.5.6 because it is more convenient ;-)

Also, I would really appreciate feedback on these instructions (there's a Windows version as well). I have anywhere between 40-50 visitors with 2-3 views per visitor on that section of my tiny blog and rarely receive any feedback. Occasionally a user asks question and needs help, but once I provide direction I don't necessarily receive feedback if it actually helped.
7  Using Arduino / Networking, Protocols, and Devices / Re: Cu Head and Cisco AP on: February 26, 2014, 12:46:58 pm
Qute frankly, I would put that WiFi shiled into the recycling bin.
The design of this shield is many years old and uses an embedded TCP stack that is not trivial to handle. I'fe tried this shiled almost 3 years ago and while I fibnally got it to connect, and send UDP packages, I ran into one obstacle after another.

In the meantime I have foud the most reliable solution is an Ethernet Shield comnnected to a WiFi ppocket route such as the TP-Link TL WR703n (or 702 or 3020).
If it needs to be physically smaller then use a Teensy ( connected to a WIZ820io.

Other than that a CC3000 perhas from Adafruit may do the job and is better software supported.
8  Using Arduino / Networking, Protocols, and Devices / Re: Ethernet Shield vs Wifi Shield on: February 26, 2014, 12:40:51 pm
Being a newbie and wanting to finish a project like this within a week is illusory at best!!!
This project will require you to do software programming.

If it has to be WiFi then get an Ethernet Shield for the reasons already outlined and connect it to a littel relatively inexpensive pocket WiFi router such as the TP-Link WR702n, which can be had for less than $20.
9  Using Arduino / Networking, Protocols, and Devices / Re: Connection WI FI on: February 26, 2014, 12:22:03 pm
The solution that's the easiest ald very likely also the most flexible and reliable has already been suggested:

Use a "stadard" Arduin Ethernet Shield and connect it per Ethernet Cable to a small WiFi router. e.g. the TP-Link TL WR703n (or use the 702n or the 3020).

The benefits of this approacha are:

- less expensive than a single Arduino WiFi Shield
- You can use all the libraries and Sketches that are written for the Ethernet Shield.

If it has to be small I'd use a CC3000 from Adafruit, but makle sure you'll evaluate what what you want to achieve in detail (what protocols to use etc.) and compare with specs and available libraries.

I use a Teensy++2 and a WIZ812MJ as well as a Teensy 3 connected to a WIZ820io  connected to a TP-Link TL WR703n in my projects and it has not let me down.
10  Using Arduino / Networking, Protocols, and Devices / Re: The best way to connect my mesh network to the company Wifi. on: February 21, 2014, 09:27:56 am
If you're looking for a potentially painful laerning experience then use the WiFi shield.

I personaly use have used an Ethernet Shield connected to a little WiFi pocket router in client/bridge mode. that combination, while more bulky, IMHO still offers the most flexibility and works out of the box. You can use the standard Ethernet library and all it offers in matured functionality. DHCP, DNS, mDNS etc.

As I mostly work with Teensy boards (  I now successfully have used a WIZ820io Ethernet module in conjunction with a TP-Link TL WR703n and TL WR702n in a few projects.

This solution is more functional solution and less expesive than the WiFi shield.
11  Development / Other Software Development / Re: Windows/Linux/Mac Eclipse plugin to compile and upload arduino sketches on: February 21, 2014, 06:39:28 am
You may want to dart with the instructions on my blog:
12  Using Arduino / Networking, Protocols, and Devices / Re: Multiple I2C sensors questions on: February 05, 2014, 09:14:28 pm
When you use different voltage levels it is good practice to use a  Level shifter. The one below for Adafruit should work fine:
This already includes 10k pull-up resistors.

It is really very simple to calculate pullup resistor values but requires a little bit of I2C bus spec. knowledge.
The I2C pins for normal mode (100KHz) and fast mode (400KHz) can only sink 3mA, which is also the reason why the overall bus capacitance should not exceed 400pF. Assuming a 5V I2C bus and A 1.8k resistor, according to ohm law  2.8 mA of current flow through the resistor. So in essence a 1k resistor is too low and the likelihood that the pins still are able to pull the I2C lines below the logic zero level is small.
13  Using Arduino / Networking, Protocols, and Devices / Re: I2C: Buffers, Pull-Up Resistors and Transmission over UTP Queries on: February 05, 2014, 08:49:52 pm
I suggested the PCA9600 because it is much more flexible and much faster and because I have a functioning board design tested to work on 20ft of CAT5 cable and 8 devices on the I2C bus at 1MHz showing still very crisp signals on a scope.

However, the chip you have selected should work fine for your application and  promises to be even simpler in application. For example it does not require the fast switching schottky diodes in my circuitry. The image I referenced is described as the quick design reference in the data sheet for the P82B715. I don't exactly know what your application is but I doubt you'll need the ESD protection diodes shown in the picture so all you are left with for a schematic are two chips and a few pull-up resistors.

I would not worry too much about the pairing. Just follow the schematic  shown in Fig 9 in the data sheet and you should be fine. That schematic does not show any decoupling caps either ;-)

Now go and build the thing and see if it works! Don't expect for it to work the first time. That of course does not mean that it won't but it is relatively normal that things have to be tweaked. Should you do run into problems, an oscilloscope is a very helpful tool to verify signal levels and signal Integrity. A logic analyzer is a very helpful tool to debug I2C protocol ( software) issues. For I2C bus purposes neither of these need to be particularly expensive. A good used analog scope for $50 from eBay is well worth the investment and plenty enough to verify I2C signal problems.
14  Using Arduino / LEDs and Multiplexing / Re: need help with 3w led wiring and high power arduino shield on: February 05, 2014, 07:32:29 pm
Don't wire LEDs in parallel. However when you flow this advice then you'll find that 8 x Vf is alway higher then the 12V from the computer. When something does not work as expected, turn of the power, take a step back and do some basic calculations.

The shield does not look like a constant current driver, which is what you need to drive LEDs. YourLED's might already be damaged if they've seen more than their rated max current.

Computer PSU's have the problem that they often do funny things when no load is applied to them. Not very good choice either.

Before making any more wiring attempts please browse through this section o the forum to brush up on your LED know how ;-)
15  Using Arduino / Programming Questions / Re: " 'analogWriteResolution()' was not declared in this scope " Error message on: February 03, 2014, 10:11:22 pm
The fully Arduino compatible Teensy 3 and Teensy 3.1 boards also provide this. At 1/4 the size and for a lot less money  smiley-cool
Pages: [1] 2 3 ... 18