NoCAN is an Arduino-compatible 'wired' IoT platform for makers. It is based on CAN-bus: a robust bus communication protocol that is widely used in industrial and automotive applications. It enables you to connect a set of Arduino-compatible 'nodes' to a Raspberry-Pi, using a single cable that brings both power and networking. The Raspberry-Pi controls the network and acts as a gateway to the outside world. You can connect sensors, lights, relays, and actuators and build complex IoT application easily. You can even control your network with your smartphone thanks to the 'blynk' gateway included in the software.
We love building 'wireless' gadgets. Like many hardware hackers, we have spent many hours playing with the fantastic ESP8266 Wi-Fi modules and some of those new Bluetooth LE adapters. However, in some applications, we ran into power issues and signal strength issues. Changing batteries every few days or plugging into a USB charger is not always practical. Your wireless signal does not always reach that little corner of the building where you have put that precious sensor box. So we decided to build an Arduino-compatible 'wired' IoT platform that would be simple and cheap, for those cases where 'wireless' is not the right solution.
And this is how the NoCAN platform was born.
Build your IoT network
To build a NoCAN network you need:
- A Raspberry-Pi, with an Omzlo PiMaster HAT.
- A 9V to 24V DC power supply.
- One, two, three or more Omzlo CANZERO nodes.
- Cables, with 4 wires.
With the cables, you connect the Omzlo PiMaster HAT to the first Omlzo CANZERO. Then you connect the first Omzlo CANZERO to the second Omzlo CANZERO, following with the third, and so forth until you have connected all your Omzlo CANZERO nodes, forming a chain that can be 300 meters long! (yes, that's 1000 feet!). You plug the DC power supply into the PiMaster HAT: this will power both the RaspberryPi and your newly created network. Now, connect to the RaspberryPi and launch 'nocand' our network manager application and you are ready to go. 'nocand' is a self-contained application that runs on a standard Linux Raspbian OS.
You can now connect sensors, lights, relays, and actuators to each CANZERO node to create rich interactive IoT applications for your home and your garden.
Get the best of both worlds with the NoCAN platform: mix the Arduino universe and the Raspberry Pi!
Build cool IoT applications
The hardware is simple. But what makes NoCAN really cool is the software we have built on top.
Firstly, CANZERO nodes communicate with each other and with the outside world using a 'publish/subscribe' mechanism. CANZERO nodes can create a 'channel' with a name (e.g. 'temperature') and all CANZERO nodes that subscribe to that channel will receive any data published on that channel. When sending a message, there is no need to worry about the 'address' of the recipient node. Sending data to multiple nodes is just as simple as sending data to a single node. If you have ever used MQTT you'll feel at home here.
As an example, a CANZERO node sensing temperature would typically contain the following code, which creates a channel called "temperature" and then publishes temperature readings on that channel:
Similarly, a CANZERO node that needs to react to a certain temperature condition would include the following code:
Secondly, our software allows you to update the firmware of any CANZERO node over the network at any time. Imagine if you had to plug a USB cable into a CANZERO node from your laptop each time you wanted to make a change to the software! That would be really annoying, especially if you have a few CANZERO nodes sitting inside nice waterproof enclosures in hard to reach locations!
Thirdly, our software enables you to interact with your NoCAN network in powerful ways. It lets you publish messages to any channel in your network or receive messages just like any CANZERO node in the network. And this software doesn't even need to run on the Raspberry Pi that controls your NoCAN network. It also works on Windows 10, Linux and Mac OS X, so you can pick your favorite weapon!
Finally, we have not forgotten that the "I" in "IoT" stands for "Internet"! so you can optionally connect your NoCAN network to the internet thanks to the 'blynk' platform. With a simple smartphone, you can then send or receive data to any channel in your network. Check from work if you left the lights on at home and remotely switch them off!
We love Arduino and the open-hardware community. It changed our life. We might have never got interested in microcontrollers and hardware if Arduino had not existed. We might have never tried to build something if we had not seen so many people building and sharing their own amazing projects. So when we designed the NoCAN platform, we tried to make it Arduino-compatible as much as possible.
The CANZERO board is designed to adopt the new Arduino MKR form factor. The pinout of the CANZERO is similar to the Arduino MKR Zero as shown in the diagram below.
Any shield designed for the Arduino MKR family should work on the CANZERO.
Note that the CANZERO is equipped with a 32-bit MCU that is much more powerful than your classic Arduino UNO. You'll get 8 times more flash memory to store your project and 16 times more SRAM! And your code will be running at 48Mhz instead of 16Mhz. It packs quite a punch for your next IoT project!
We provide a CANZERO board definition and libraries for the Arduino environment. Once they are installed, you can write sketches in the Arduino IDE, export them as compiled binaries and then upload them to any node with our dedicated software too.
We provide detailed instruction in an extended tutorial describing how to set up the Arduino environment for CANZERO nodes.
If we reach our funding goal, we are committed to making all hardware and software open source. By doing so, we want to make sure that anybody can replicate our work and hopefully build exciting derivative work and enhancements to the NoCAN project. You can already find the schematics of our boards on our website.
Controlling things from the Internet
As we mentioned previously, NoCAN networks can be connected to your smartphone, thanks to the blynk platform (note: We have no link with blynk inc.). You can download and use the blynk application for free on both Android and iPhones. Then, with just a few lines in a configuration file, you can connect 'channels' in your NoCAN network to widgets in a blynk application on your smartphone.
Here are examples of applications of this technology:
- Press a button on your smartphone, and it will activate a relay back home, switching on a light.
- Monitor the current temperature and humidity in your garden as you travel abroad.
- Get a notification on your smartphone when your PIR sensor detects a presence in your house in the middle of the night.
For more details check out our blog entry describing how to connect a NoCAN weather station to a smartphone.
The Omzlo CANZERO node is a dual-MCU board with the following characteristics:
- Main MCU: SAMD21 Cortex-M0+ 32bit low power ARM MCU
- Clock speed: 48Mhz (and 32.768kHz for RTC)
- Operating Voltage: 3.3V
- Digital I/O Pins: 22
- Analog: 7 inputs and 1 output
- Peripherals: 1 UART, 1 SPI, 1 I2C, CAN-bus
- Flash Memory: 256K (8K for the bootloader)
- SRAM: 32K
- Extras: Built-in user LED, VIN and 5V supply pins
- Network driver MCU: STM32F042 Cortex-M0 32bit ARM MCU - 48Mhz
The Omzlo CANZERO provides a 3.3V supply pin (300 mA max), a 5V supply pin (500mA max) and a VIN supply pin (e.g. 12V). However, like most newer Arduino-compatible boards, the Omzlo CANZERO is designed to operate with 3.3V logic instead of the 5V logic used by the Arduino UNO for example. As a consequence, it should not be connected to 5V logic without using some kind of voltage shifting circuitry. The CANZERO nodes use an efficient switching regulator to step-down the network voltage (e.g. 12V) down to 5V, and then a more traditional LDO to reach 3.3V.
The Omzlo CANZERO measures 25mm x 61.5mm (approx. 1" x 2.4") and is physically compatible with the dual 14-pin headers of the Arduino MKR family.
Additional details about the Omzlo CANZERO, including schematics, are available on our website.
The Omzlo PiMaster is a Raspberry Pi HAT with the following characteristics:
- MCU: STM32F042 Cortex-M0 32bit ARM MCU - 48Mhz.
- Network: 125000 bps CAN bus.
- Power: 6V to 28V DC.
- Security: Smart power switch with overcurrent protection.
- Size: Standard Pi HAT footprint.
- GPIO: Communicates with Raspberry Pi through SPI + GPIOs.
The Omzlo Pi Master is compatible with all Raspberry Pi boards with a 40 pin header, notably the Raspberry Pi 2 model B+, the Raspberry Pi 3 or even the Raspberry Pi Zero though the later is smaller than the Omzlo PiMaster HAT.
Additional details about the Omzlo PiMaster HAT, including schematics, are available on our website.
The NoCAN platform uses CAN-bus running at 125Kbps. This speed allows building networks over 300 meters (1000 feet) long.
NoCAN cables need 4 wires: Ground, VIN, CAN_L, and CAN_H. You can use cheap Ethernet cables as described in our tutorial. For very long networks, it is recommended to add a termination resistor on the last CANZERO node of your network: simply connect a 120-ohm resistor between the CAN_L and CAN_H pins. Each reward kit is provided with such a resistor, though you probably won't need it.
The Omzlo PiMaster and the Omzo CANZERO nodes can operate with a power supply providing any voltage from 6.5V up to 28V. In practice, it is recommended to use a power supply that can provide at least 12W (24W is better), typically as 9V, 12V or 24V. This power supply will need to power both the Raspberry Pi and the NoCAN network. It's also possible to use a separate power supply for the Raspberry Pi as an extra level of redundancy.
The following picture shows a weather station based on an Omzlo CANZERO connected to a BME280 temperature, humidity and pressure sensor. The node was placed in an enclosure and connected to the rest of the network.
The following picture shows an enclosure hosting a CANZERO connected to a relay which switches on or off a light connected to mains (here 230 VAC).
In the third example below, we have connected a 12V Passive infrared sensor (PIR) to a CANZERO node that is programmed to send a notification on a dedicated channel if the sensor detects a presence between 11 pm and 5 am. The notification is forwarded to a smartphone with the blynk platform. Since the NoCAN network is powered with 12V here, the PIR sensor is also directly powered by the network with no additional regulation circuitry.
Backers can try the NoCAN platform with two kits: the standard kit with 2 Omzlo CANZERO nodes, and the extended kit with 5 CANZERO nodes.
Though it should be clear from the diagrams above, we highlight that the kits do not come with a Raspberry Pi or a power supply. You will need to provide your own.
If you are not looking into building a wired IoT project, you can still show your support for this project with the "silly" supporter sticker reward pictured below. The sticker is 5 cm by 8 cm (approx. 2" x 3.1").
Risks and challenges
We are quite confident that we will successfully complete this project and that we will deliver rewards to backers on time. Indeed, this crowdfunding campaign is not designed to turn a prototype into a real product: we already have a real product. This crowdfunding campaign is designed to provide us with the funds to produce our first production run and kickstart a community around the NoCAN platform.
We have a good understanding of the manufacturing challenges for this project and we have already produced the first batch of 30 Omzlo CANZERO nodes and 10 Omzlo PiMaster HATs. We have been testing the platform in the field for a couple of months. We have also recently provided some sample kits to selected beta testers, in order to root out any remaining issues in software or documentation. The feedback provided by these beta-testers during the next 2 months will be integrated into the product delivered to bakers.
At this stage, the only potential cause for delays would be an unexpected shortage of a component necessary for the assembly of the rewards. We have already pre-stocked all passive parts covering our funding goal. Should we still run into any supply issue for the remaining parts, we will notify our backers immediately and provide a new delivery date. Given the current stock levels of our suppliers, we believe that such an issue is unlikely.
In general, we promise complete transparency to our backers in case we encounter any issue. We believe that trust is a key element to establish a durable relationship with our backers beyond the end of this crowdfunding campaign.Learn about accountability on Kickstarter
- (30 days)