Library code for Adafruit's CC3000 WiFi breakouts &c

Overview

Adafruit CC3000 Library

This is a library for the Adafruit CC3000 WiFi Breakouts etc

Designed specifically to work with the Adafruit CC3000 Breakout ----> https://www.adafruit.com/products/1469

These modules use SPI to communicate, 6 pins are required to interface

Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!

Check out the links above for our tutorials and wiring diagrams

Arduino library Written by Limor Fried & Kevin Townsend for Adafruit Industries.
CC3000 host core written by TI

To download. click the DOWNLOADS button in the top right corner, rename the uncompressed folder Adafruit_CC3000 Check that the Adafruit_CC3000 folder contains Adafruit_CC3000.cpp and Adafruit_CC3000.h

Place the Adafruit_CC3000 library folder your arduinosketchfolder/libraries/ folder. You may need to create the libraries subfolder if its your first library. Restart the IDE.

NOTE: the 'SendTweet' example currently DOES NOT WORK due to Twitter API changes. The code is being kept for posterity in case a workaround can be developed.

Comments
  • TCP/IP server crashes after a couple of requests. The timing seems to be random.

    TCP/IP server crashes after a couple of requests. The timing seems to be random.

    It feels like it is related to:

    • When the requesting side stops the connection and opens one (or many) new ones to fast.
    • Maybe to many packages send in the same time?
    • Maybe some buffers that are overrun in the Adafruit Library?

      Are more people having this issue?

    Could it be possible to have a function that tells if all packages are received, send successfully or unable to send due a closed connection? This function can help me to wait until the message is send instead of just blindly delay by a magical amount. Is something like that supported by the cc3000?

    opened by vheun 44
  • driverpatch sketch (both 1_12 and 1_13) hangs during CC3000 initalization

    driverpatch sketch (both 1_12 and 1_13) hangs during CC3000 initalization

    I'm trying to upgrade my CC3000 firmware, but I'm running into the issue described in the title.

    I'm able to start the process through the serial monitor, and it displays the RX/TX buffers and RAM on the CC3000, but crashes during initialization.

    What's throwing me off is that when I run buildtest or one of my own sketches, I can get past the initialization process without any issues.

    Could this have something to do with the "if (!cc3000.begin(2))" command on the driverpatch sketches? buildtest and the other sketches that work use cc3000.begin()

    In all cases I'm using an Atmega1284p with the ManiacBug bootloader.

    Any help would be appreciated!

    opened by darudude 21
  • font const compile error

    font const compile error

    I'm getting this error trying to compie the "Echo Server" example:

    $ ino build
    Robot_Control/glcdfont.c
    /usr/share/arduino/libraries/Robot_Control/glcdfont.c:9:23: error: variable 'font' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
     static unsigned char  font[] PROGMEM = {
                           ^
    make: *** [.build/pro328/Robot_Control/glcdfont.o] Error 1
    Make failed with code 2
    
    opened by prologic 18
  • Shield Crashes if DELAY is set to 45 seconds but not 30 seconds

    Shield Crashes if DELAY is set to 45 seconds but not 30 seconds

    I modified WebClient.ino to fire a request in loop() rather than setup().

    It seems like if we do delay(t>30) the board will crash.

    Serial.println(1), Serial.println(2), ... were inserted for debugging purposes.

    If INTERVAL is set to 45:

    Hello, CC3000!
    
    Free RAM: 6876
    
    Initializing...
    
    Attempting to connect to Cisco21623
    Connected!
    Request DHCP
    
    IP Addr: 192.168.1.141
    Netmask: 255.255.255.0
    Gateway: 192.168.1.1
    DHCPsrv: 192.168.1.1
    DNSserv: 75.75.75.75
    207.58.139.247INTERVAL:45
    1
    2
    SENT AT:26114
    3
    4
    <console hangs>
    

    However, if INTERVAL is set to 30:

    Hello, CC3000!
    
    Free RAM: 6876
    
    Initializing...
    
    Attempting to connect to Cisco21623
    Connected!
    Request DHCP
    
    IP Addr: 192.168.1.141
    Netmask: 255.255.255.0
    Gateway: 192.168.1.1
    DHCPsrv: 192.168.1.1
    DNSserv: 75.75.75.75
    207.58.139.247INTERVAL:30
    1
    2
    SENT AT:27435
    3
    4
    5
    1
    2
    SENT AT:57830
    3
    4
    5
    1
    2
    SENT AT:88304
    3
    4
    1
    2
    SENT AT:118709
    3
    4
    ... (goes on indefinitely)
    

    My code can be found here: https://gist.github.com/vicngtor/5616b24751763ff6bb04

    opened by ghost 14
  • Add HTTPServer and example code

    Add HTTPServer and example code

    Building on the recent addition of the TCPServer code, I added some basic HTTP server logic. It doesn't do much more than parse HTTP method and path, and provide these to an HTTP handler callback function.

    opened by limited 14
  • WebClient example crashes on large file downloads

    WebClient example crashes on large file downloads

    Open the WebClient example from the Adafruit_CC3000_Library, set it up for your network credentials, and use:

    define WEBSITE "45.55.159.249"

    define WEBPAGE "/test.hex"

    I expect it will start downloading and printing out the file, but will eventually halt and timeout before the end of the file is reached. Loading the same thing in your web browser works without a hitch: http://45.55.159.249/test.hex.

    opened by vicatcu 13
  • ChatServer lock up on Teensy3.1

    ChatServer lock up on Teensy3.1

    The CC3000 stops responding on the wifi after a few working exchanges using the ChatServer example on the Teensy3.1 with the breakout board. Right before all SPI action stops, there is a different looking IRQn and SPI read exchange. Different enough it is possible to trigger on this, and some resulting plots are posted here: http://forums.adafruit.com/viewtopic.php?f=31&t=50176

    opened by teachop 13
  • Just a Wiring Diagram

    Just a Wiring Diagram

    I got a CC3000 in the mail the other day, and I finally got around to wiring it up today. I couldn't find any clear instructions on the arduino pins used (it is defined in one of the files in the library though). I thought I'd save others the trouble by making a little diagram. It's very low-fi (not fritzing or anything) but it may help someone:

    Old Incorrect Diagram Archived for clarity: http://imgur.com/CqdcDEM

    Corrected diagram thanks to DubbyTT 687474703a2f2f692e696d6775722e636f6d2f69376350654f562e6a7067

    opened by thejbw 12
  • Add support for ATmega1284P processor

    Add support for ATmega1284P processor

    This small change adds support for the ATmega1284P processor using the popular 'Mighty 1284P' pinout (as documented at http://maniacbug.wordpress.com/2011/11/27/arduino-on-atmega1284p-4/ and https://github.com/maniacbug/mighty-1284p/). Unfortunately there is no official Arduino pinout for the ATmega1284P processor, however the 'Mighty 1284P' bootloader and pinout is the most well documented, and follows the conventions of official Arduinos.

    This change was tested using an ATmega1284P setup as a breadboard Arduino running the mighty 1284p bootloader. The buildtest, chat server, and web client examples were run to verify functionality.

    This pin to interrupt mapping should also work for other processors like the ATmega1284, ATmega644A/PA, etc. but has not been tested with them so they weren't added.

    opened by tdicola 11
  • Remove tx buffer from client, add tests, and fix bugs with fastrprint handling null strings.

    Remove tx buffer from client, add tests, and fix bugs with fastrprint handling null strings.

    This commit does the following:

    • Removes the transmit buffer from being a member of each client instance. The transmit buffer is only used to buffer strings from flash memory to send out on sockets, therefore it's not necessary to have a separate buffer with each client. The transmist buffer is now a local variable of the fastrprint function.
    • Adds a test directory with a small suite of tests for the fastrprint function. A README.md explains the usage of the tests, and a small python script is provided for capturing output of tests.
    • Fixes a few bugs with fastrprint and fastrprintln calling send (and sending garbage data on the socket) when they receive a null string. Simple string length checks now catch these conditions and respond appropriately.
    • Puts an end of line constant used by fastrprintln into flash memory instead of RAM.

    This commit was tested by running the included Client_fastrprint test suite before and after the changes, capturing the output of these tests, and comparing the before/after output with diff to ensure there was no change in functionality. Execution time of the tests before and after was mostly unchanged, 134 vs. 135 milliseconds. Memory usage with multiple clients decreased as expected by moving the tx buffer out of each class instance.

    opened by tdicola 10
  • intermittant hangs in read loop

    intermittant hangs in read loop

    I have a project that runs 24x7 and uploads stats every 30 minutes. a couple times a week I find the system hung with the display showing its stuck in the read loop.

    I have implemented a internal watchdog and the hang is severe enough to even lock that up so no reset is occurring. Has anyone else encountered similar behavior?

    external watchdog comes next I guess.

    ref: https://github.com/dzzie/humidor.net/blob/master/Arduino/humidor/humidor.ino#L424

    simplified:

      startTime = millis(); //unsigned long
     #define IDLE_TIMEOUT_MS 7000 
    
      while (www.connected()) {
    
        if( (millis() - startTime) > IDLE_TIMEOUT_MS ) break;
    
        while (www.available()) {
    
            if( (millis() - startTime) > IDLE_TIMEOUT_MS ) break;
    
            char c = www.read();
            ...
    
        }
      }
    
      wdt_reset();
    
    opened by dzzie 9
Releases(1.0.4)
  • 1.0.4(Jul 10, 2019)

  • 1.0.3(Sep 30, 2015)

    Previous releases didn't update the library.properties version and aren't visible to Arduino's library manager. Bumping the version up to 1.0.3 in both places to get into a consistent state. No functional changes to the library.

    Source code(tar.gz)
    Source code(zip)
  • 1.0.2(Jul 28, 2015)

    Minor release to push updated getHostByName function prototype to Arduino's library manager. This allows calling getHostByName with a const char* value that's a constant (required by some examples in other libraries).

    Source code(tar.gz)
    Source code(zip)
  • 1.0.1(Apr 9, 2015)

    Small fixes and cleanup for compatibility with the latest Arduino release. Note that firmware upgrades do not work with the 1.6.x series IDE! For now stick with using the older 1.0.6 compiler to perform a firmware upgrade, then switch to 1.6.x for uploading sketches as normal.

    Source code(tar.gz)
    Source code(zip)
  • 1.0.0(Mar 31, 2015)

Arduino library to access Adafruit IO from WiFi, cellular, and ethernet modules.

Adafruit IO Arduino Library This library provides a simple device independent interface for interacting with Adafruit IO using Arduino. It allows you

Adafruit Industries 168 Dec 23, 2022
Library for Arduino UNO WiFi Developer Edition

Note: This library will no longer be maintained by Arduino. Uno WiFi Developer Edition Library Library for Arduino Uno WiFi Developer Edition For more

Arduino Libraries 19 Feb 7, 2022
WiFi connectivity module for SAM Element.

ACS-M1128 SAM Element IoT WiFi Connectivity SAM Element is an IoT platform. Visit our website to get to know more. Quick Links & Requirements Knowledg

SAM Element 1 Mar 13, 2020
♾ The All-New AllThingsTalk Arduino SDK for WiFi Devices

AllThingsTalk Arduino WiFi SDK AllThingsTalk Arduino Library for WiFi Devices - makes connecting your devices with your AllThingsTalk Maker a breeze.

AllThingsTalk 5 Jul 21, 2022
ESP32 Temp Alarm using DS18B20, wifi manager, Email alert Threshold

ESP32-Freezer-Alarm ESP32 Temp Alarm using DS18B20, wifi manager, Email alert Threshold. I made this alarm using several tutorials from https://random

null 5 Oct 7, 2022
ESPHome custom component for Linptech G6L-WIFI

ESPHome custom component for Linptech G6L-WIFI (linp-doorbell-g04) Background The Linptech G6L-WIFI is a wifi doorbell with a self-powered button. It'

Paul Nicholls 7 Dec 16, 2022
Arduino Library and code to flash CC2510, CC1110 or other Texas Instruments CCxxx Microcontroller

ESP CC flasher This software brings you the possibility to Read and Write the internal Flash of the Texas Instruments CC 8051 series with an ESP32 usi

null 38 Nov 11, 2022
Modified Firmata code to work with Adafruit's Bluefruit LE Modules

#Firmata Firmata is a protocol for communicating with microcontrollers from software on a host computer. The protocol can be implemented in firmware o

Adafruit Industries 21 May 25, 2022
Arduino code that runs on a Pi Pico (2040) to emulate a USB HID Joystick

CRSFJoystick Arduino code using the mbed core that runs on a Pi Pico (2040) to emulate a USB HID Joystick Pirmarily developed to use and ExpressLRS re

Mike Neiderhauser 35 Dec 30, 2022
Arduino Arduino library for the CloudStorage server project. The library provides easy access to server-stored values and operations.

Arduino-CloudStorage Arduino/ESP8266 library that allows you to easly store and retreive data from a remote (cloud) storage in a key/value fashion. Cl

Gil Maimon 7 Jan 30, 2022
Arduino library for controlling the MCP2515 in order to receive/transmit CAN frames.

107-Arduino-MCP2515 Arduino library for controlling the MCP2515 in order to receive/transmit CAN frames. This library is prepared to interface easily

107-Systems 51 Nov 16, 2022
Arduino library for interfacing with any GPS, GLONASS, Galileo or GNSS module and interpreting its NMEA messages.

107-Arduino-NMEA-Parser Arduino library for interfacing with any GPS, GLONASS, Galileo or GNSS module and interpreting its NMEA messages. This library

107-Systems 15 Jan 1, 2023
Arduino library for providing a convenient C++ interface for accessing UAVCAN.

107-Arduino-UAVCAN Arduino library for providing a convenient C++ interface for accessing UAVCAN (v1.0-beta) utilizing libcanard. This library works f

107-Systems 54 Jan 2, 2023
Arduino web server library.

aWOT Arduino web server library. Documentation 1. Getting started Hello World Basic routing Application generator Serving static files 2. Guide Routin

Lasse Lukkari 246 Jan 4, 2023
Arduino, esp32 and esp8266 library for ABB (ex PowerOne) Aurora Inverter, implement a full methods to retrieve data from the Inverter via RS-485

ABB Aurora protocol You can refer the complete documentation on my site ABB Aurora PV inverter library for Arduino, esp8266 and esp32 I create this li

Renzo Mischianti 22 Nov 22, 2022
Arduino library for the MCP2515 CAN Controller

MCP2515 CAN Controller Library for Arduino Compatibility with the ACAN library This library is fully compatible with the Teensy 3.x ACAN library https

Pierre Molinaro 4 Dec 18, 2022
An ESP32 CAN 2.0B library

CAN Library for ESP32 ACAN_ESP32 library description ACAN_ESP32 is a driver for the CAN module built into the ESP32 microcontroller. The driver suppor

Pierre Molinaro 11 Dec 9, 2022
CAN / CANFD Arduino Library for Teensy 4.0

CAN Library for Teensy 4.0 / 4.1 It handles Controller Area Network (CAN) for CAN1, CAN2 and CAN3, and Controller Area Network with Flexible Data (CAN

Pierre Molinaro 12 Dec 9, 2022
Analog Devices Analog Digital Converter AD7173 Arduino library

AD7173-Arduino Analog Devices AD7173 analog digital converter Arduino library Mostly tested setup for this library: 1007 data rate external crystal co

brain-duino 8 Nov 20, 2022