One of our existing products at work, which I designed about 2 years ago, makes use of the STM32F373 microcontroller interfaced to an AD7767 24-bit sigma-delta ADC, to create a smart sensor.
Whilst at the time of development, (Feb 2014) – this seemed to be an economical solution, our requirements have changed a little, in that we wish to add Bluetooth Low Energy Connectivity, LiPo battery support and the means to drive an OLED display. These functions could be added in the form of an additional pcb (similar to the Arduino shield concept), and provision had been made to accommodate such a board with an expansion connector, but after reviewing all of the costs, it was decided that a new approach – and a new dedicated pcb design would be ultimately preferable.
If you are a soldering ninja with a flair for working with tiny parts and modules, check out the Open Source Watch a.k.a. OSWatch built by [Jonathan Cook]. His goals when starting out the project were to make it Arduino compatible, have enough memory for future applications, last a full day on one charge, use BLE as Central or Peripheral and be small in size. With some ingenuity, 3d printing and hacker skills, he was able to accomplish all of that.
OSWatch is still a work in progress and with detailed build instructions available, it is open for others to dig in and create their own versions with modifications – you just need to bring in a lot of patience to the build. The watch is built around a Microdunio Core+ board, an OLED screen, BLE112A module, Vibration motor, a couple of LEDs and Buttons, and a bunch of other parts. Take a look at the schematics here. The watch requires a 3V3, 8MHz version of the Microdunio Core+ (to ensure lower power consumption), and if that isn’t readily available, [Jonathan] shows how to modify a 5V, 16MHz version.
A set of 3D printed parts [ZIP file] houses all of the parts in a neat bundle. A detailed sub-set of instructions by [Jonathan] shows you how to go from the raw 3D printed parts to a slick looking enclosure for the watch. This guide in itself is a great resource that shows a lot of tricks on post-processing 3D printed parts. One trick he shows is how to use a screw heated with a soldering iron to create a counter-sunk recess in the 3D printed plastic. For the Display, he used a mono OLED screen, for its easy availability and low cost. But he lists out a couple of other devices under Display Options, in case you want to use a Sharp Memory Display or a color OLED screen. On his Github repo, you will find the Arduino code as well as a rudimentary iOS app.
When you are done with most of the assembly, you end up with three layers – the ‘back’ containing the battery, charging port, vibration motor and a couple of discrete parts, the ‘middle’ containing the electronic modules, buttons, programming ports and the ‘front’ housing the display and a couple of LEDs. Put it all together and you are ready to strut your OSWatch. What we love about this project is the sheer level of build instructions and details provided by [Jonathan] that lets anyone with the right set of skills replicate his work. And if you would like to look at some more smart watch options, here’s Open Source Smart Watch , the OSHWatch and the Zerowatch.
The robotic prototype swimming under water propelled by fins, it was developed at the Control Systems and Robotics Laboratory of the Technological Educational Institute of Crete, in Heraklion (Greece) and it’s controlled by an Arduino Mega:
Each fin is comprised of three individually actuated fin rays, which are interconnected by an elastic membrane. An on-board microcontroller generates the rays’ motion pattern that result in the fins’ undulations, through which propulsion is obtained. The prototype, which is fully untethered and energetically autonomous, also integrates an IMU/AHRS unit for navigation purposes, a wireless communication module, and an on-board video camera. The video contains footage from experiments conducted in a laboratory test tank to investigate closed loop motion control strategies, as well as footage from sea trials.
the Arduino runs a custom-developed real time firmware that implements two Central Pattern Generator (CPG) networks to generate the undulatory motion profile for the robot’s fins. The robotcontains a 7.4V lipo battery powering also a Bluetooth module for wireless communication and a video camera to record footage of the missions.
[Josh] got rid of the standard, factory gauges on his GSXR Super-bike and installed a custom built instrument panel which displays some additional parameters which the regular instrumentation cluster did not. He was working on converting his bike in to a Streetfighter – a stripped down, aggressive, mean machine. The staid looking gauges had to go, besides several other mods to give his bike the right look.
Luckily, he had the right skills and tools available to make sure this DIY hack lives up to the Streetfighter cred of his bike. The important parameter for him was to log the Air / Fuel mixture ratio so he could work on the carburation. Along the way, he seems to have gone a bit overboard with this build, but the end result is quite nice. The build centers around a Planar 160×80 EL graphic display lying in his parts bin. The display didn’t have a controller, so he used the Epson S1D13700 graphic controller to interface it with the microcontroller. An Atmel ATmega128L runs the system, and [Josh] wrote all of his code in “C”.
Bike speed is derived through a GPS module. The air/fuel ratios are read from a wideband O2 sensor. Other data shown on the display are the engine temperature, battery voltage, time (from GPS), and engine RPM. An ambient light sensor is used to auto-dim the display. The high refresh rate of the display, up to 240Hz, allows a large dimming range without flickering. The light sensor also controls the brightness of the other indicators. A BC127 Bluetooth module allows datalogging via the Serial Port Profile (SPP). In the future, this would possibly allow him to display SMS messages from his phone on the display. A bank of addressable LED’s can be driven to show several functions – indicator lights, RPM, battery voltage, engine temperature or air / fuel ratio – selected using a push button.
[Josh] used his CNC to mill out the housing using a 1″ thick acrylic. And the nice looking PCB is designed in Eagle and milled out using the same CNC. It’s all SMD with a large smattering of 0805 parts and shows rev B – so he’s probably made improvements over rev A. Check out the video below where [Josh] walks through some of the functions.
The only surface mount device on this PCB is the MAX31855 and it has a low number of generously spaced pins. I eschewed my hot air gun, previous reflow oven and hot plate in favour of a plain old iron and the tack-soldering method because I wanted to show how easy it is to assemble this PCB and you can see me soldering the MAX31855 in the video that accompanies this article. No laughing at the back please; it’s hard to solder from behind a video camera!
[Andy Brown] is a prolific hacker and ends up building a lot of hardware. About a year back, he built a reflow oven controller. The board he designed used a large number of surface mount parts. This made it seem like a chicken or egg first problem. So he designed a new, easy to build, Android based reflow controller. The new version uses just one, easy to solder surface mount part. By putting in a cheap bluetooth module on the controller, he was able to write an app which could control the oven using any bluetooth enabled Android phone or tablet.
The single PCB is divided into the high voltage, mains powered section separated from the low power control electronics with cutout slots to take care of creepage issues. A BTA312-600B triac is used to switch the oven (load) on and off. The triac is controlled by a MOC3020M optically isolated triac driver, which in turn is driven by a micro controller via a transistor. The beefy 12Amp T0220 package triac is expected to get hot when switching the 1300W load, and [Andy] works through the math to show how he arrived at the heat sink selection. To ensure safety, he uses an isolated, fully encased step down transformer to provide power to the low voltage, control section. One of his requirements was to detect the zero cross over of the mains waveform. Using this signal allows him to turn on the triac for specific angle which can be varied by the micro controller depending on how much current the load requires. The rectified, but unfiltered ac signal is fed to the base of a transistor, which switches every time its base-emitter voltage threshold is reached.
For temperature measurement, [Andy] was using a type-k thermocouple and a Maxim MAX31855 thermocouple to digital converter. This part caused him quite some grief due to a bad production batch, and he found that out via the eevblog forum – eventually sorted out by ordering a replacement. Bluetooth functions are handled by the popular, and cheap, HC-06 module, which allows easy, automatic pairing. He prototyped the code on an ATmega328P, and then transferred it to an ATmega8 after optimising and whittling it down to under 7.5kb using the gcc optimiser. In order to make the board stand-alone, he also added a header for a cheap, Nokia 5110 display and a rotary encoder selector with switch. This allows local control without requiring an Android device.
Gerbers (zip file) for the board are available from his blog, and the ATmega code and Android app from his Github repo. The BoM list on his blog makes it easy to order out all the parts. In the hour long video after the break, [Andy] walks you through solder tip selection, tips for soldering SMD parts, the whole assembly process for the board and a demo. He then wraps it up by connecting the board to his oven, and showing it in action. He still needs to polish his PID tuning and algorithm, so add in your tips in the comments below.