Author Topic: Sensorclock design  (Read 4028 times)

0 Members and 1 Guest are viewing this topic.

Offline bschapendonkTopic starter

  • Newbie
  • Posts: 3
  • Country: nl
Sensorclock design
« on: November 08, 2015, 04:49:30 pm »
Hi

Disclaimer I'm new here and a beginner.

I'm a software engineer by trade and I was looking for a project that I could use to toy with Windows 1o IoT core.
I was inspired by Steve Gardner's 6 Digit LED Clock http://sdgelectronics.co.uk/ledclock-projects/.

Quickly did I realize that multiplexing the display's wasn't going to work, so I decided to use three PCA9622 (I2C 16 channel PWM led driver) instead.
Than things got out of hand and I added a bunch of sensors for IoT (hence the project name) and toyed with the idea of designing my own board.

I'm going to opensource everything, currently my rev A schematic and board layout are up on GitHub (diptrace, geber and pdf files)
https://github.com/bschapendonk/sensorclock

I'm still unsure about some parts of my design, but mostly I want to check if I didn't fall into any traps for young players.
So any feedback is welcome.

Quick rundown
- 3x PCA9622 I2C 16 channel PWM led driver to drive 48 led's in the six 7-segment displays
- The sensors are on a breakout boards from sparkfun, BME280 and TSL2561
- I'm not to sure about the MQ-135 gas/air quality sensors design, I added an ADC MCP3425 and an loadswitch AP2280 to turn the heater on and off, but i'm not sure if i connected the ADC correctly to the sensor
- Number of APC102C RGB leds hooked up to the SPI bus for some mood/amilight
- 74HCT08 used as a lever shifter from 3v3 to 5v for the APA102C, loadswitch and SHDN feature of the 3v3 LDO, this gives me the means to reset the I2C bus by power cycling the 3v3 rail
- DCDC converter module for the 5v rail, this powers the Raspberry Pi, the RGB leds and the 3v3 regulator
- I don't have any SMD soldering experience yet



« Last Edit: November 25, 2015, 05:36:17 pm by bschapendonk »
 

Offline awallin

  • Frequent Contributor
  • **
  • Posts: 694
Re: Sensorclock design
« Reply #1 on: November 08, 2015, 05:15:36 pm »
- wouldn't it be more stylish with the digits grouped closer together?
- any chance it could all be powered over Ethernet from a PoE switch?
- have it use NTP to stay on time
- why would anyone run Win10 on an RPi 2 if linux is available  :-DD
 

Offline niekvs

  • Contributor
  • Posts: 48
Re: Sensorclock design
« Reply #2 on: November 08, 2015, 06:03:57 pm »
"Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away." (Antoine de Saint-Exupery)

This doesn't just hold true for how something looks on the outside, but also for how something works on the inside. In the case of your clock: I don't think you will need over 50 million lines of code to run this clock. The more lines of code you add, the higher the chance of one of them failing (as a software engineer, you should appreciate this).

A lot more elegant (IMHO) would be to use a simple MCU to solve your problem. You can then also use multiplexing, which you said was an issue with your design. E.g., have a look at something like the stm32f030c8t6: even that's more than you probably need, but it costs less than 1$ and has plenty of speed and memory for what you want to do. And because it's so much simpler, it'll also be a lot more reliable. And it won't need updates every Tuesday! :) If you need Internet, just add a $2 ESP8266 (ESP-12e), and you're done. It'll also take a lot less energy.

Good luck! And if you need any help with stm32, there will be many people here to help you.
 

Offline bschapendonkTopic starter

  • Newbie
  • Posts: 3
  • Country: nl
Re: Sensorclock design
« Reply #3 on: November 25, 2015, 05:47:44 pm »
Thanks for the feed back.

I had the board fabricated and last week I assembled it.





I made some stupid mistakes :P (didn't read the small print in the datasheets)
  • Inadvertently gave one of the PCA9622's address 0x00 thinking the chip had a base address the the A0-A6 pins where an offset, then I modded the PCB to give it address 0X04 which is invalid |O, fortunately there is a software workaround by using the ALLCALL address to active SUBADDR1 on that chip
  • The MCP3425 ADC has the same address as the DS3231 |O and they can't be changed, although there are different parts of the MCP3425 with different addresses, for now I cut the traces to the DS3231
 

Offline Spikee

  • Frequent Contributor
  • **
  • Posts: 568
  • Country: nl
Re: Sensorclock design
« Reply #4 on: November 25, 2015, 06:12:11 pm »
Tip put I2C addr above / under each chip in the schematic design to advert these "simple" errors.
Freelance electronics design service, Small batch assembly, Firmware / WEB / APP development. In Shenzhen China
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf