The Project board is for sharing projects based on Silicon Labs' component with other community members. View Projects Guidelines ›

Projects

    Publish
     
      • Fang-tastic Internet of Pumpkins

        WYALLEN | 10/300/2015 | 06:50 PM

        Internet-of-Pumpkins.jpg

         

        Mesh networking is a great technology for the IoT for its low-power nature and built-in redundancies. Silicon Labs has been an industry leader in mesh networking using the ZigBee technology and a co-founder of the Thread group. We wanted to create a large mesh network of pumpkins to show how easy it is to build an IoT system.

         

        Internet-of-Pumpkins-carve.jpg

         

         

        First, we enlisted some volunteers who channeled their creative inner child to carve/decorate the pumpkins.

         

        Then it was time to connect them into a Connected Pumpkin mesh network. That part is as easy as 1-2-3 using upcoming ZigBee Reference Designs

         

        Internet-of-Pumpkins-inside.jpg

         

        1. Power on the gateway
        2. Turn on each light reference board and commission to the network. This is now a mesh network.
        3. Place lights in the pumpkins.

        Now you’re ready to control the pumpkins on any device with internet connection.

         

         

        Build list

        Select a mesh network technology (ZigBee, Thread)

        • For ZigBee, acquire a gateway (Silicon Labs Reference Designs available soon)

        For Thread, acquire a Thread Border Router

        • Select appropriate end devices (a Lighting Reference Design available soon)

        • Foam pumpkins (Then you can re-use, and it works better with electronics...)

      • Low Power Contest 2015: GSM/GPS Micro Tracker for Wild Animals

        x89300 | 10/298/2015 | 07:38 PM

        Micro Tracker based on EFM32G210 MCU with

        • GPS module
        • GSM module with NanoSIM holder
        • Solar Power controller
        • Accelerometer (activity detection)
        • Flash memory
        • LEDs
        • Reed Switch
        • MicroUSB to host computer for communication and charging

        General usage for wild animals tracking but possible use for child, bicycles and so on.

        EFM32 MCU extra low consumption provide long time to standalone time.

        Currently use microsoft azure to collect and visualize data

        vell.azurewebsites.net

        CT5.jpg

        CT5-sch.png

        CT5-brd.png

         

        Source codes will be published on github.

      • CP210x customization using a Python script

        ptesarik | 10/292/2015 | 03:10 PM

        As the current maintainer of an alternative open-source CP210x Programmer

        I got a question last Friday about customizing the CP2105. The person wanted to read the current configuration from the chip, but it failed.

        Over the weekend I tried it out with my CP2104 Evaluation Kit, kindly provided to me by Silicon Labs a while ago, and indeed, it did not work. After researching all available sources, I found out that:

        • There is no “EEPROM Dump” command for the CP210x chips. The original author probably found a bug in the CP2102 firmware (see below).
        • The CP2105 can be in fact customized with cp210x-program, e.g. I changed my evaluation kit's product string using the following command:
          cp210x-program -w --set-product-string='CP2104 EK for Peter'
        • Some features of the CP2105 cannot be customized at the moment:
          • Port Configuration
          • Flush Buffers Settings
          These features should be customizable in the next release of cp210x-program.

        However, these findings made me curious how the “dump EEPROM” feature works on a CP2102. The code in fact reads 1024 bytes from the Baud Rate Table. But the Baud Rate Table is only 320 bytes long! It turns out that the CP2102 firmware does not check transfer size for read (nor write) commands. Since the Baud Rate Table happens to be located at the very beginning of the 1024-byte EEPROM in the CP2102, the Baud Rate Config command (0x3709) becomes an EEPROM read/write command.

        This stopped working on CP2104, because this model does not have a Baud Rate Table; the necessary divider calculations are done directly by the firmware, removing the need to customize anything on the device when using an unusual baud rate. Kudos to Silicon Labs. But as a corollary, this broke the (undocumented) dump EEPROM hack.

        For the curious, there's nothing to regret. Unlike previous models, the CP2104 does not contain any EEPROM. Instead, there is a much more reliable One-time programmable ROM (PROM). It comes unprogrammed initially. For each customizable value, there is a flag indicating whether it has been programmed yet. If it is 0xff, a hard-wired default is used. After customization it becomes 0x00 and the value from the PROM is used. The customization process is physically irreversible; that's why you can safely X-Ray your PCB board with a CP2104 on it without fears that some of those zeros flip back to ones.

        How did I find out the implementation details of CP2102? Well, it appears that boundary checks are not very popular with the folks at Silicon Labs, so you can read up to 3073 bytes with the Flush Buffer Config command (0x370D) on a CP2104, which includes the customizable part of the PROM (1024 bytes), the hard-wired default values (following 1024 bytes) and a routine (or main program?) in the following bytes.

        By the way, the code appears to be valid 8051 machine code, with references to C8051F01x USB special function registers. This makes me wonder how hard it would be to turn a stock C8051F015 into a CP210x-compatible bridge. Not much, I guess, because good engineers prefer re-using proven designs over constantly re-inventing the wheel. ;-)

      • BlueGiga Expansion Board

        Alf | 10/275/2015 | 09:39 AM

        Just thought I'd share this with you, in case anyone wants to make something similar, an Expansion board for the BlueGiga modules that works with the EFM32 STKs. It's made for the BLE112/BLE113 modules, but it shouldn't be too hard to adapt it for the new Blue Gecko modules; BGM111.

         

        Schematics and layout attached. It's a 5x5 cm, two-layer PCB, so they should be quite cheap to prototype.

         

        DSC_0647.png

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

        bluegiga_STK_breakout_schematic.png

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

         

        Full disclaimer: Steven Cooreman actually did the work, I'm just the messenger.