«

»

Aug 17 2013

Bluetooth Net Monitor v2

This post only goes over the new stuff in the network monitor, I’d recommend having a look at the original post first.

  • New PCB design
    The new PCB is now an almost single board design, just a separate board for the USB connector. The old monitor had a small main board which connected to the LCD and Bluetooth modules. This new board has everything soldered straight on.
  • Revamped microcontroller code
    Refactored a lot of the microcontroller code, reduced RAM usage and improved performance a little bit.
  • New router program
    The router program is now completely written in C! Uses much less CPU time than the old shell script.
  • New host program
    Written in C# .NET and uses LibUsbDotNet. It’s still in early development, but at the moment allows uploading images (takes around 2.5 – 3 seconds to upload), drawing stuff (mouse click and drag) and controlling the display brightness.
  • Other new features
    New efficient binary protocol instead of a text protocol.
    Added a temperature sensor since there was a lot of room left on the PCB, however this turned out to be a bit useless for measuring the room temperature because of the heat dissipated by nearby parts, mainly the Bluetooth module.
    Included USBaspLoader bootloader to allow easy firmware updating over USB, slightly modified to suit the monitor.


Sources available at GitHub

15 comments

Skip to comment form

  1. Florin

    Hi Zak,

    First of all, thanks for sharing this project!
    I was hoping to take some inspiration from your Bluetooth Antenna design so I studied the Eagle files you’ve published. I couldn’t find the actual pcb antenna in your brd file, all I could find is the tkeepout and bkeepout areas where the antenna should be (I’ve enabled all layers). Is there any trick to show the antenna trace?

    Thanks!
    florin

    1. Zak Kemble

      Hey, the antenna is part of the Bluetooth module – http://www.ebay.com/itm/251066012059

      1. Florin

        Uh, indeed…

  2. BlueTooth

    This new version, do I have to redo the programming I done from the old set up?

    1. Zak Kemble

      Do you mean the microcontroller firmware? If so, then yes, that needs to be updated to the new firmware.

  3. Jorge

    That’s exactly what i’m looking for… but i’m not handy with electronics and soldering… don’t u sold as kit? or pre assembled?

    1. Zak Kemble

      Sent you an email :)

      1. Martin

        Hi, I’d also be interested in a pre built kit, are you able to do that?

        1. Zak Kemble

          Yup, email sent.

          1. PeperKakaHUus

            Would be interested in a kit too, greatings from germany

  4. vpapanik

    Hello Zak !

    I am using the same HC-05 module for my project and I have a simple question : I am using the RST (11) and PIO11 (34) pins, connected to two microcontroller outputs (ATMEGA328P), for controlling reset and AT commands, respectively.

    Is there any point in using pullup or pulldown resistors (e.g. 10K) on these pins, or are they useless ? How about decoupling capacitors ?

    1. Zak Kemble

      Hey,
      The RST pin already has an internal pull-up to 1.8V, so I don’t think it’s 3.3V compatible. For this one the 328 pin should be configured as an open-drain output so it’s only either output LOW or input with no pull-up.
      PIO11 can be driven by a normal HIGH/LOW output (3.3V only), don’t need to bother with pull-ups/downs.
      Add a 100n decoupling cap just to be sure.

      1. vpapanik

        Thanks a lot for the detailed info ! I will remove the pullup/pulldowns to save a few cents :)
        It seems that the RESET pin works with 3.3V output but I’d rather not push it anymore.

      2. vpapanik

        I suppose that this is the code for RESET :

        void HC05::powerOn(void) {

        // open-drain configuration (http://blog.zakkemble.co.uk/bluetooth-net-monitor-v2/#comment-202050)

        clearBit(BT_RST_DDR,BT_RST); // set RST as input
        clearBit(BT_RST_PORT,BT_RST); // no pullup resistor
        }

        void HC05::powerOff(void) {

        setBit(BT_RST_DDR,BT_RST); // set RST as output
        clearBit(BT_RST_PORT,BT_RST); // set output low
        }

        1. Zak Kemble

          Yup, looks like it should work.

Leave a Reply

Your email address will not be published. Required fields are marked *


7 + 5 =

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>