Fully Independent DS3231 RTC Breakout Board
This is the DS3231 breakout board that I designed for my nixie tube clock. The DS3231 is a cool Real Time Clock (RTC) chip from Maxim that keeps track of the time, date, two alarms, and outputs the current temperature. The chip has an internal oscillator which allows it to be very precise. And, the chip can run at very low power off a battery backup and keeps time for 6-7 years when the power goes off. Sounds pretty cool, right?
However, the one drawback is that the IO pins require external pull-up resistors and many of the breakout boards (like say, the ChronoDot) on the market don’t include them. So I decided to make my own breakout board with proper pull-up resistors on all the pins, appropriate de-coupling capacitors, and a on-board battery backup. This makes the board fully independent and pluggable into any project without requiring additional components. The board is slightly taller than a quarter and works great in my nixie tube clock. In the future I should be able to port it other projects.
The layout follows the datasheet and I tried to keep a nice solid ground plane under the chip. I used surface mount components to reduce board size but used larger 1206 size components for easy soldering.
Schematic:
In Action – Plugged into my Prototype Nixie Tube CPU board:
Parts List:
| Part | Value | Package | Digikey Part # |
| C2 | 0.1F | 1206 | 445-4024-1-ND |
| IC1 | DS3231SN | SOIC 16W | DS3231S#-ND |
| JP1 | Jumper | A26525-40-ND | |
| R1, R2, R3, R4 | 10k Ohm | 1206 | RHM10.0KFRCT-ND |
| U$7 | Battery Holder | CR1220-SMD | 3000K-ND |
Eagle layout files:
https://s3.amazonaws.com/bleuchez/DS3231/DS3231_breakout_board_eagle_files.zip
A low cost Nixie Tube Power Supply
I’ve recently become interested in Nixie tubes. Nixie tubes are neon filled glass tubes that contain cathodes in various shapes, numbers being the most common, and a mesh anode. Passing a current through the cathode causes the neon gas to ionize which makes it light up.
The problem with these tubes is that they voltages of around 170V in order to ionize the gas. Fortunately, most tubes only need a few mA which makes the supply design simpler and easy to run off a wall wart.
Design:
My goal here is to create a power supply that is cheap and works well enough to power 4 IN-17 tubes for
a direct drive Nixie tube clock. My design is based on the power supply used in the ArduiNIX.
A search of the web shows that their power supply design is quite common. I took their design and incorporated the suggestions Nick De Smith gives in his own Nixie tube design tutorial. Nick’s supply is nice but it is expensive. However, his suggestions are useful. I added a solid ground plane except around the inductor and used multiple vias to connect to ground for low resistance paths. I used large traces and expanded them to a plane wherever possible to further reduce resistance. In addition I added capacitors to the input (C5, C6) and output (C7) to help smooth ripples. I put the components as close together as possible and also changed the output diode to a UF4004. Why switch the diode? Because it was cheaper.
Cost:
So is the supply cheap? The total component cost is $7.75. Is it possible to make it even cheaper? Yes. You can directly solder your wires to the board and omit the terminal connectors (J1, J3 – $1.64). You can also omit the input/output stabilizing capacitors (C5, C6, C7) and the IC socket for the 555 timer and save another $0.53. This brings the total down to $5.58.
The board size is 1.8 x 1.9 inches. Assuming that you live in the US and pay $ 1.67/sq inch for your PCBs, you can build one for about $13.50 (or $11.29 with reduced components). And, it only gets cheaper if you make more.
How Does it Work?
The supply uses a traditional switch mode topology. The 555 timer switches inductor L1 to ground and diode D2 through transistor Q10. L1 charges up when it is connected to ground and then acts like a current source to force charge through D2 when Q10 is off. This charge build up on capacitor C1 provides the desired output voltage. Potentiometer R19 and transistor Q5 form a feedback loop that control the 555 timer’s switching frequency.
Stability:
The supply takes a while to stabilize. In addition to switching noise, the supply output drops about 5-7 volts over the span of a few minutes after you turn it on. It stabilizes soon afterwards. In my tests, if I set the supply to 175v with a 100kOhm load, it stabilizes around 168v and will stay that way for several days. Fortunately Nixie tubes are forgiving enough

that this supply is adequate.
Construction and Usage:
Constructing the supply is simple. Solder the indicated components into their proper places on the board. It should take about 30 mins to assemble. Once it is assembled, connect yourinput power supply to header J1 and a multimeter to the output header – J3. The input supply should be around 9v. Plug in the input power supply. THIS INVOLVES HIGH VOLTAGES THAT CAN KILL YOU, SO DO NOT TOUCH THE HIGH VOLTAGE PORTIONS OF THE BOARD. Look at your multimeter – it should read somewhere between 90V and 200V. Adjust potentiometer R10 until you reach your desired voltage. As you do this, pass your hand over the supply – you should feel no heat. If it feels hot, or if the output voltage is low or wildly oscillating then you have a short or misplaced component. CAUTION – Unplug the board before you check your work.
Parts list:
I’ve saved the parts list at Mouser as a project titled ‘HV Supply’:
https://www.mouser.com/ProjectManager/ProjectDetail.aspx?AccessID=81e48496fa
Files:
The supply was designed using Eagle. You can download the board and schematic files here:
Resources:
ArduiNIX review
Overview:
According to the ArduiNIX website, the “ArduiNIX shield is a user programmable platform for driving multiplexed Nixie tube or other high voltage displays.” I bought the ArduiNIX shield after I read about Nixie tubes and wanted to try them out. Nixie tubes are old-school tube based character displays that require voltages in the range of 150-200V to run. The ArduiNIX board has an on-board SMPS power supply that generates these voltages and it has the correct interface to drive Nixie tubes from a Arduino board. However, in my case I’m using a Netduino board to do the driving.
The ArduiNIX is open source – the CAD layout files for the board and parts list are available on the site. In addition, there is a forum where users can ask questions and discuss issues.
Pricing:
Once you consider the cost of acquiring all the parts and putting them together, the prices in their store are reasonable. You can buy a complete kit for $45 including shipping. The kit doesn’t include the NIXIE tubes. This seems reasonable because a user may want to use a different type of tube than the one they supply. You can get a fully assembled board for $94. Based on the ease of assembly, I think that purchasing a fully assembled board is not worth the price.
Assembly:
Assembling the board took me about 2 hours and is straightforward. They have a excellent step-by-step tutorial on their site. All the parts are through-hole and are marked clearly on the PCB. Since there are many different value resistors, double check the resistances and be careful when soldering them into the board because it is easy to get them confused.
Usage:
Using the board is straightforward. You write your code, plug it into your Arduino or Netduino, and apply power.
Design:
Looking at the layout of the ArduiNIX I see some definite areas for improvement. Based on the Nixie supply design and analysis posted on Nick Smith’s website, the ground plane is run under the switching supply inductor which causes energy loss. In addition, the ArduiNIX design uses very small traces. This does not provide the necessary low impedance paths between components. Despite these drawbacks, the ArduiNIX works well and is able to adequately power the IN-17 nixie tubes for which it was designed.
Herman Miller Mirra Chair Review
I spend a lot of time sitting. I sit after I wake up, I sit all day at work and then when I get home, I sit for few more hours. Over time I’ve found that my chair, the Verksam from Ikea, wasn’t too comfortable for long periods of sitting. This was a top of the line Verksam with the armrests and orange suede leather chair for which I paid close to $300 about five and a half years ago. I have long arms and legs and the Verksam’s armrests never went down far enough for me to be comfortable. The seat didn’t push out far enough to support my legs, adjusting the armrests was a pain, and the chair was to damn hard.
Background
I read about the Herman Miller Mirra chair while reading Jeff Atwood’s blog a while ago. It seemed nice but it was pretty expensive so I forgot about. Eventually, I got tired of the Verksam and got tired of being tired. So, after reading a few more reviews I decided to purchase the Mirra chair.
In my research I found out that Herman Miller has two yearly sales in which it cuts the price of if its furniture by 15%. The sales appear to occur at the beginning of June and around Christmas. I purchased a new fully adjustable Mirra chair with the tilt limiter and forward tilt during one of those sales from Amazon for $679. I highly recommend waiting for a sale if you are thinking of purchasing a Herman Miller chair, the regular price on the chair is $799 so you’ll save over $100 by waiting a few months.
Personal Impression
I received the chair a couple days after I ordered it. it comes in a huge box that weighs around 50lbs. It comes almost fully assembled, the only assembly required is to attach the back to the base using two bolts. One small annoyance is that you need a socket wrench to properly install the bolts – the bolts don’t tighten well enough and the back starts to wiggle if you use a monkey wrench like first I did.
The Mirra has a suspended mesh bottom that supports the user very well. It has a slight give and molds to the shape of your bottom instead of forcing your bottom flat like a regular chair. The arms are soft and filled with a kind of a gel and are very comfortable unlike the hard or soft plastic most other chair use. In addition to adjusting up and down, the armrests also twist inward as well as move in and out.
The material that comprises the back is very flexible. Unlike a traditional chair that usually has a hard or soft back, the Mirra’s back is flexible and molds to your back. In addition, the adjustable lumbar support lets you target the small of your back.
The recline feature is very well built. As advertised, the seat tilts along with the back. However, unlike cheaper chairs where the back and seat feel bolted together, the Mirra seat tilts back at a different rate than the back so your whole body feels supported. The recline is so comfortable that I even like to relax in the chair. The tilt tensioner and limiter lets you dial the tilt to whatever you feel like for that day!
One disappointment is the forward tilt feature. From the description you would imagine that the seat and back would tilt forward and support your body when you leaned forward but that is not the case. The forward tilt is just that – it is a lever that tilts the seat forward at a set angle and is not adjustable. It actually ends up being uncomfortable and is a useless feature.
Annoyances
The chair has a several annoyances that I would not expect on a product at this price. The armrests wiggle within the in-out setting you chose even under light pressure. I would expect the mechanism to move the armrests in and out to hold the arms tighter. The arms don’t always lock at the height you select, the steps for the locking mechanism need to be tighter. In addition, the armrests don’t move in and out very smoothly, it takes a disproportionate amount of force to get them moving and you have a tendency to slam the armrest because of the force you use. Overall, once the chair is adjusted to your workspace these annoyances fade and you you don’t notice them as much.
Conclusion
Overall, I like the Mirra. It is a great improvement over my Ikea Verksam chair. The Mirra is very comfortable and is highly adjustable. I can work in it for hours and thanks to the recline features is a great chair to relax in. It has some annoyances that I wouldn’t want to see in a chair at this price but they are unnoticeable once you properly adjust the chair.
Pros
Made in the USA
Highly adjustable
Comfortable
Cons
Expensive!
Some features poorly implemented
Lame forward tilt feature
Generating PDFs using iTextSharp on Mono
I was looking for a .NET pdf generator so that I could add online bingocard generation to my side project, BingoWords. The code and website are built using .NET and I run the site under Mono on a VPS at Linode. So, it was important that the PDF generator run under Mono without issues. Being cheap and full featured were two other desired features. After some research, I found that there were two major players that satisfied this criteria, PDFSharp and iTextSharp. Both are open source, free, and are fully featured.
Although some posts on the web indicated that PDFSharp would run under Mono, it was a no-go from the beginning. It failed the mono compatibility tool – Mono Migration Analyzer or M0MA almost right away. I still decided to try out PDFSharp with Mono after reading a few posts stating that it may work if my code avoided the non-Mono compatible portions of the code but that was a total failure.
So, I had no choice but to use iTextSharp. iTextSharp passed under MoMA and it worked great on my Linode VPS under Mono. With iTextSharp, I can generate PDFs that comply with the PDF standard and are viewable on every major platform. So, if you are planning to generate PDFs under Mono, I would highly recommend iTextSharp. Or to get a better sense of the features, try out my free Online Bingo Card Generator!
I noticed that weren’t many code samples available while doing my research and coding the Bingo Card Generator. So, here are some samples from my code for those that are just getting started:
Creating a new PDF document:
MemoryStream ms = new MemoryStream();
Document document = new Document(PageSize.LETTER);
PdfWriter writer = PdfWriter.GetInstance(document, ms);
document.Open();
Creating a BaseFont. A BaseFont contains the parameters of the font that is written to the PDF document:
BaseFont bf = BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
Writing center-aligned text to 400pts from the left and 400pts from the top:
cb.BeginText();
cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, “Title Text”, (int)(Math.Abs(400, 400, 0);
cb.EndText();
Getting the width of a string in points:
titleWidth = (int)cb.GetEffectiveStringWidth(“Hello World!”, false);
Setting the font size of a BaseFont:
cb.SetFontAndSize(bf, titleFontSize);
Draw a line from the top left to the bottom left of the document:
cb.MoveTo(document.Left, document.Top);
cb.LineTo(document.Left, document.Bottom);
cb.Stroke();
Editing the document’s properties:
document.AddTitle(“Designed by BingoWords.com”);
document.AddAuthor(“Author goes here!”);
document.AddSubject(“Subject Goes Here!”);
document.AddKeywords(“Keyword1, keyword2, …”);
Closing your document:
document.Close();
Put this after the “document.Close()” to return your document with the name “file.pdf” when a user clicks on a link:
Response.ContentType = “application/pdf”;
Response.AddHeader(“content-disposition”, “attachment;filename=file.pdf”);
Response.Buffer = true;
Response.Clear();
Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length);
Response.OutputStream.Flush();
Response.End();
I hope this comes in handy. Feel free to contact me if you have any questions or comments.
Lenovo T400, Windows 7, and the 2504 Lenovo Docking Station
If you just upgraded your Lenovo T400 to Windows 7 and have found that your laptop no longer recognizes the DVI port on your 2504 series docking station, here is what you need to do:
1) Download the ThinkVantage System Update 4.0 utility from Lenovo
2) Install the “Intel Chipset Support for Windows XP/Vista/7″ package
3) Restart your computer
Now, the DVI port on your docking station will work and you will be able to use two external displays simultaneously.
Free Bingo Card and Wordsearch Designer
If you are looking for a free Bingo Card or Wordsearch Designer then look no more – BingoWords Puzzle Designer is now free for everybody! Click here to go to the website!
Features:
- Create arbitrary sized Wordsearch puzzles
- Create Bingo Cards up to 5×5 squares in size
- Save your wordlists for future use and to share with co-workers
- Print an unlimited number of Bingo Cards and Word Search Puzzles
- Print up to 8 Bingo Cards per page
- Quick access to common word lists using the built in Word Wizard
For more details, read on.
Why is it Free?
Originally, I was planning to sell Bingo Words Puzzle Designer but then I realized that I’d rather spend my free time working on new code instead of on marketing and all the hassle that comes with running a business. Besides, putting together something like this only took me a couple weeks of part-time work and it annoys me that some people are charging over $30/copy for something that is this simple to make.
My hope is that it will be useful to someone and that they will pay it forward some day.
About
BingoWords Puzzle Designer is a project I worked on in order to teach myself C#/ASP.NET. The application is made with C# and Winforms. The website is build using ASP.NET and is hosted using Mono on a virtual server at Linode. I was able to learn every aspect of creating an app with this project – from drawing on the screen to printing and to saving files to generating serial numbers.
Feel free to contact me with questions or suggestions for improvement!
CrystalTech Web Hosting Review
I was looking for ASP.NET hosting for the project I built to learn C#/ASP.NET. CrystalTech isn’t the cheapest host or gives the most features for your dollar but I decided to sign up because it is the host used and recommended by Jeff Atwood.
Background
I signed up for the .NET Value plan at $7.95/month. I got the following for my $7.95/month:
- Hosting for 1 site only
- 500 MB disk space
- 50 GB bandwidth
- 2 GB mail disk space
- 10 mail accounts
- 100 MB MySQL database
I paid for 3 months in advance so I didn’t have to pay the setup fee. I was a member from July 2008 through February 2009.
Sign-up
Signing up was easy. I filled out the online form, entered my credit card number, and they started on setting up my account. I finished applying at 8:18PM and had my account information at 8:58PM on the same day.
Control Panel
CrystalTech’s control panel is the worst I have used. They make you log in with a hard to remember customer number instead of a easy to remember user ID. Instead of giving you a overview of your site, the main control panel page is a massive advertisement for their services. I am logged in now and I see ads for Paypal and virtual servers – and this is for a service that I’ve paid for! Even worse, the control panel has poor support for non-IE browsers, I cannot access any of the settings in the control panel with my daily browser – Opera.
Hosting
Visual Studio has a great GUI for transferring websites and I was easily able to use it to upload my files after I managed to set up a FTP account. Their uptime isn’t too great, I get maintenance notifications 1-2 times a month alerting me that my site will be down for a couple hours. Their last downtime notification was about 2 weeks ago, compare this with my linode virtual server that has been up for 46 days!
Account Cancellation
Unlike all the other hosting companies I have used, CrystalTech makes you call in to cancel your account. Canceling online is not allowed.
Final Thoughts
I was very disappointed with CrystalTech’s hosting experience. Their constant downtime, poorly designed control panel, and ads are a pain. In addition, they’ve graciously decided to spam me with their monthly newsletters. Their poor service is apparent when a little while after I signed up, they lost all the data that Jeff Atwood had stored on their servers.
Since then, I’ve moved my site to Linode and set it up to serve ASP.NET pages using Mono. For about $12 more (1.5x more), I get a shell account, dedicated memory, 4x more bandwidth, 32x more disk space, and the ability to host unlimited websites. I would not recommend CrystalTech as a host.
Getting Mono Working at Linode on Ubuntu 9.10
I’m looking into moving one of my ASP.NET projects to Mono and had trouble getting Mono working on Ubuntu 9.10. Turns out the steps to set it up were simple, but they took some digging around so here they are:
Step 1:
Install Apache2:
apt-get install apache2 apache2.2-common apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
Step 2:
Enable the Universe repositories. To do this, uncomment the universe repositories in /etc/apt/sources.list so it looks like this:
## main; restricted repositories
deb http://us.archive.ubuntu.com/ubuntu/ karmic main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ karmic main restricteddeb http://security.ubuntu.com/ubuntu karmic-security main restricted
deb-src http://security.ubuntu.com/ubuntu karmic-security main restricted## universe repositories
deb http://us.archive.ubuntu.com/ubuntu/ karmic universe
deb-src http://us.archive.ubuntu.com/ubuntu/ karmic universe
deb http://us.archive.ubuntu.com/ubuntu/ karmic-updates universe
deb-src http://us.archive.ubuntu.com/ubuntu/ karmic-updates universedeb http://security.ubuntu.com/ubuntu karmic-security universe
deb-src http://security.ubuntu.com/ubuntu karmic-security universe
Step 3:
Run ‘apt-get update’ to get the latest sources.
Step 4:
Finally, follow the steps listed in the Ubuntu ModMono guide:
Install the mod_mono packages: libapache2-mod-mono mono-apache-server2-
apt-get install libapache2-mod-mono mono-apache-server2
Enable the Apache module:
a2enmod mod_mono_auto
Restart Apache:
apache2ctl graceful
Step 5:
Place a .aspx page where Apache can see it, for example at ‘/var/www/’
Getting Started With The Atmel AVR Processor
It has been a while since I worked on the Atmel AVR line of microcontrollers. Things have changed since I last played around with them. I did some digging to figure out how to start up again so here is a quick guide for those that are looking.
Step 1:
Pick a Atmel AVR MCU that fits your requirements. I’m doing a simple project so I picked the ATtiny26.
Step 2:
Buy, beg, borrow, or steal a AVR ISP a.k.a as the AVR In-System Programmer. There are schematics for home made programmers out there, I’ve had problems with bad solder joints and messed up connections with home made programmers so I avoid them. Debugging is hard enough, a bad programmer is a problem you really don’t want to debug.
Step 3:
Wire up your AVR processor to the AVR ISP using the documentation provided with the ISP. It is a matter of wiring up the MISO, MOSI, SCK, Reset, Vcc, and Ground pins and should take only a few minutes on a breadboard.
Step 4:
Now, on to the software. Download and install WinAVR. WinAVR is a set of utilities that includes a port of GCC to the AVR family, AVR-GCC, and several helpful Unix utilities.
Step 5:
The last step is to to download and install AVR Studio 4. Get the latest version. AVR Studio 4 has been updated to integrate with AVR GCC, you type your code in using C. It generates the makefile needed to compile your code with AVR GCC and, if you are using the AVR ISP, will let you upload your code directly to your microcontroller.
To get started, start up AVR Studio and select ‘New Project.’ Select ‘AVR GCC’ as the project type and click Next.
Then, select your microcontroller and the debug platform.
I haven’t made significant progress on my ATTiny26 code, but if you wish, you can select the ATMega32 microcontroller/AVR Simulator and try out the code from my Binary Clock.
The debugger is pretty cool, besides stepping through the code, you can also view register states and modify variables on the fly.
Enjoy



