Monday, December 9, 2013

Inside stuff: 0-30V cheap panel voltmeter

This is just a reiteration of my post on http://www.eevblog.com/forum/. Since then some people have picked up the challenged and designed new firmware for the microcontroller. Let me explain.

The module is a cheap (2-3$) 0-30V voltmeter. It has a 3-digit output, is pretty accurate and begs curiosity with it's TXD/RXD soldermask labels.


The inside sports an STM800S3F3 chip with nice features:

  • 2.95-5.5V supply voltage
  • 16 Mhz internal oscillator
  • 3 timers
  • 4 CCP/PWM modules
  • 5-channel 10-bit ADC
  • UART, SPI, I2C
  • 8k Flash, 1k RAM
Thoughtfully, the programming/debug port is also broken out, just not labeled. The pinout would then be:


  SWIM / PD1 (HS)
  TX / AIN5(HS) / PD5
  RX / AIN6 (HS) / PD6
  NRST
  VDD
  VSS

The board also includes a 3V/30mA linear regulator that can take up to 30V. All-in-all a very cheap development board that can be used for a lot of stuff


Here's a close-up picture of the board under strong light so you can reference the double-sided PCB without taking the thing apart:


And if you want to dig into this deeper just have a look at http://smokedprojects.blogspot.ca/2013/08/i2c-led-display-from-hacked-voltmeter.html and http://hackaday.com/2013/08/25/turning-cheap-voltmeters-into-i2c-displays/.

The board in the article looks slightly different than mine, but I just bought the cheapest one I could find on ebay.

4 comments:

  1. Hello,

    do you have any information about the serial RX TX pins (speed, parity etc.; any special activate string that needs to be send in advance)?

    I could not see any signal on the pins yesterday.

    ReplyDelete
  2. HI! It's possible to transform the 0-30V cheap voltmeter in a 0-999mV meter? Thanks in advance

    ReplyDelete
    Replies
    1. Probably pretty easy to do, I assume the TP pin (blue wire) goes through a voltage divider to a pin on the MCU. So that's probably the two resistors near the wire inputs. You need to change one of those so that on 1V input the display shows 10V. I think if you bypass the divider completely, 1V on the ADC corresponds to 10V on the display.
      You still need to power it separately as it needs at least 3.7V on Vcc.

      Delete