My design is of a service bell. This bell features a conventional mechanical ringer mechanism but with a catch; No annoying ‘DING!’. Instead, the power of tomorrow is …

]]>

The following is my entry to Pinshape’s Mechanical Design Contest.

My design is of a service bell. This bell features a conventional mechanical ringer mechanism but with a catch; No annoying ‘DING!’. Instead, the power of tomorrow is harnessed to provide silent, wireless interactivity. Okay, maybe not the power of tomorrow but the bell does make use of an Adafruit Huzzah Feather board to send service requests and replies via the web [io.adafruit.com]. The board and rechargeable battery are hidden in the base with an outlet for a micro USB charging cable. A service request is sent when the striker hits a small lever switch inside of the bell that is connected to the board. A Neopixel ring is embedded in the top of the base that lights up the inside of the bell with 12 RGB LEDs. When service is needed, the bell turns red. When acknowledged via web the bell goes back to green or whatever color is appropriate.

The idea is inspired by the need for a silent, affordable way to call for service or let someone know you’re here. Like in a therapists reception area. The idea came from my wife and the inspiration to try and make it came from this contest. I don’t know who originally invented the service bell mechanism, I just looked at a dollar-store bell for reference.I’m including a few pictures and videos to go along with my descriptions…

This is the cool part and the non-electrical mechanical part of the design. This little guy rest with a strike-plate under the pin, lifting it up. When the pin is pushed down, the ringer swings and its hammer end strikes the inside of the bell (lever switch in this case). Then gravity takes over and pulls the hammer back down, thus pushing the pin back up. No springs needed! View the quick video for a cut-away view of the ringer in action.

To assemble the Ringer, print it out then heat the hammer ‘fins’ and bend them backwards. Let cool to restore rigidity.

Bell:

The bell is a 3mm thick white polymer shell. I originally tried to print this with my own printer with no luck. I decided to try sending away for an SLA print of my design. The print and material is awesome and diffuses the LED lights beautifully. It’s very rigid but not too brittle. I did shatter one when trying to squeeze it back to being round (packing and shipping left the bell slightly oval shaped.

Base:

The base is printed in Carbon Fiber PLA. It has room for an Adafruit feather board with header. There is an offset to keep the board to the side in order to allow for the battery to also sit flat. The base takes me almost 9 hours to print at .1 mm at 40 m/s.

Bracket:

The Bracket has an M8 threaded hole at the top that allows the bell to be screwed in place. The support holes for the ringer/striker are offset so that the strike-plate rest directly under the cener hole (where the pin falls). My printer doesn’t have the tolerance, so I had to super-glue the bracket onto the base. A bit of sanding and you’d never know.

Pin:

The pin printed a little thick and a bit too long. I fine tuned it by sanding it and trimming to length.

Fiducial:

The fiducial is purely cosmetic and screws onto the top.

Lid:

This lid wiggles onto the top of the base and allows a 12-pixel neopixel ring to sit within it. There are holes to allow connection wire to pass from underneath. I might glue the lid in place when all is said and done. In hind-sight, the lid is nice but can imped the stiker. The lid now rest just inside the base.

Electronics:

Battery: 500mA li-po
Switch: The smallest I could find off-the-shelf
MCU and Wifi: Adafruit Huzzah Feather (Got from Adabox 003)
Code: the code can be found below
Web: io.adafruit.com

To Do in the Future:
Incorporate Wireless Charging?
Create alternate way to reply (without phone), maybe hit ringer a few times in a row.

]]>http://blog.mcufun.com/service-bell-of-tomorrow/feed0It’s been a while, with reason…http://blog.mcufun.com/its-been-a-while-with-reason
http://blog.mcufun.com/its-been-a-while-with-reason#respondWed, 01 Jun 2016 18:20:57 +0000http://blog.mcufun.com/?p=254Instead of doing little bits of development and posting here in my free-time as I had been; I’ve taken a contract job that is letting me get paid while I build experience. I am almost complete with the first device …]]>Instead of doing little bits of development and posting here in my free-time as I had been; I’ve taken a contract job that is letting me get paid while I build experience. I am almost complete with the first device and will hopefully be allowed to share it here. I’ll try and post something sooner than later.

~C

]]>http://blog.mcufun.com/its-been-a-while-with-reason/feed0Updated My Codehttp://blog.mcufun.com/updated-my-code
http://blog.mcufun.com/updated-my-code#respondMon, 23 Nov 2015 07:15:52 +0000http://blog.mcufun.com/?p=237I add my current code in progress to: https://github.com/cdnagy/MCUFUN…]]>I add my current code in progress to: https://github.com/cdnagy/MCUFUN
]]>http://blog.mcufun.com/updated-my-code/feed0Added Memoryhttp://blog.mcufun.com/228-2
http://blog.mcufun.com/228-2#respondFri, 20 Nov 2015 20:14:40 +0000http://blog.mcufun.com/?p=228I added an external 16K EEPROM IC to the project (an AT24C16B). I don’t really need it for anything yet, but it’s a great way to test I2C since writing and reading from the memory is very straight forward. With …]]>I added an external 16K EEPROM IC to the project (an AT24C16B). I don’t really need it for anything yet, but it’s a great way to test I2C since writing and reading from the memory is very straight forward. With I2C now setup, I’m ready to move on to the camera. That being said, I find myself drawn to going back over the code I’ve written so far and improving it. I’ll try to do both this weekend. There’s always a lot of little details to work on for each module and sometimes I don’t know when it’s time to move on.

I wrote a driver for the ili9341 240×320 LCD Driver IC. Next I wrote my own primitive drawing functions. I then linked in the TI Tiva C Graphics Library to access more sophisticated features such as widgets. I tried the primitive functions of the graphics library. Size and speed seemed comparable when drawing and filling circles. Wikipedia can probably be thanked for that (https://en.wikipedia.org/wiki/Midpoint_circle_algorithm). My full screen fill was visibly faster than the library. The library functions are not built-in like the peripheral functions it’s just a normal library. That meant I could include the whole library and have the linker sort out which functions to actually include based on the compiler’s needs. They’re good friends you know, the compiler and linker. BFFs. The short demo video doesn’t show the advanced GUI functions, just my primitives and the TI Graphic Library’s font/string features. I utilized a new timer to create some simple animation.

I do have some past experience dealing with voxels and plotting 3D vectors and I could certainly keep exploring deeper into driving displays and making graphics…but I’ve given myself a good understanding and want to move on for now. I want to focus on adding to my TM4C123GXL project. I’ll return to the LCD when I need to display something. It’s hard to stop, I want to keep going. However, there’s so much more! Touch-Screen. External Flash. CRC. Analog Joystick. SD Card, wi-fi. I think the next step will be to either hook up an SD Card or the analog Joystick. So far everything is still interrupt driven. I will probably branch off somewhere and try to implement an RTOS. The Camera will also be up soon. Everyone is impressed by a camera.

I need to figure out GIT a little better, I’m use to svn. I’ll get my current code up soon.

Time and energy has been a little more sparse, but I did manage to get that LCD screen going.

An early problem I ran into was with the SPI not being ran fast enough. Thanks to my trusty logic analyzer, …

]]>

Time and energy has been a little more sparse, but I did manage to get that LCD screen going.

An early problem I ran into was with the SPI not being ran fast enough. Thanks to my trusty logic analyzer, I could see my timing was way off and adjusted things accordingly.

Since I’m building a code base for myself, and because I was a little down in my mood, I started transcribing command registers and parameters from the datasheet into a comprehensive header that makes more sense to me. It was time consuming, but since doing that, I’ve gained a much deeper understanding of what is and needs to go on to drive the LCD. As I continue, I can tweak more and more settings, and fine-tune my display for my particular setup. If I move to a different setup, that should be just as easy to tune. Pictures and Code later

]]>http://blog.mcufun.com/back-at-it/feed0A Break in the Actionhttp://blog.mcufun.com/a-break-in-the-action
http://blog.mcufun.com/a-break-in-the-action#respondMon, 12 Oct 2015 09:12:49 +0000http://blog.mcufun.com/?p=207My wife broke her foot this week, so I’ve been away from playing while I help out. I did set up a GitHub repository though:

Real-time “Green-Screen” effect using an FPGA. Written in the Verilog HDL, no software needed! I’m holding a green cloth and a picture I captured earlier is being …

]]>Here are some pictures from past work, projects and classes I’ve participated in.

Real-time “Green-Screen” effect using an FPGA. Written in the Verilog HDL, no software needed! I’m holding a green cloth and a picture I captured earlier is being piped into the bits that are determined to be with a certain color threshold. The cut off is because the SRAM I used to hold the stationary image was not large enough.

Interested in how to make that aforementioned SRAM work? Start with a proper state machine and everything else falls into place.

Sometimes, you just need to make your own development board…

To analyze the raw data coming in from 25 different wearable data loggers, I found it necessary to create a helper program/GUI to process and consolidate the data. This was written in Java. Why Java? It had been a while so I wanted to refresh myself. Plus, I like NetBeans.

Java GUIs aren’t my only experience. Here’s a picture of one I created using VB.net. This is part of a greater program that is used for analyzing x-ray beam vectors.

MatLab Skills? Yeah, I got those. This is just an illustration I made showing how an arbitrary vector can be described by its projections onto 3 standard axes.

Wire-wrapping of my first embedded design project. Start with the fundamentals and learn from the past. I’m going to stick with solder-less breadboards if I can.

]]>http://blog.mcufun.com/misc-project-photos-from-the-past/feed0Pan/Tilt: Update Videohttp://blog.mcufun.com/pantilt-update-video
http://blog.mcufun.com/pantilt-update-video#respondTue, 06 Oct 2015 20:30:20 +0000http://blog.mcufun.com/?p=195Here we have a quick video of my code working with the ARM processor to move the pan/tilt servos.

I improved the footprints dramatically so that the pieces can be printed, but at the cost of weight and style. I may have to go with a different material so that I can use a smaller print nozzle. I …

]]>

I improved the footprints dramatically so that the pieces can be printed, but at the cost of weight and style. I may have to go with a different material so that I can use a smaller print nozzle. I also need to tighten and re-calibrate my printer to get more accuracy.