Some time ago I asked our intern, Manny, to design an Arduino clone. This was primarily a learning exercise. He’s worked with the Arduino platform one some projects, and created schematic/PCB/firmware for a Microchip PIC based project. This project was designed to combine those experiences to create a more generic tool. I felt the results of his effort were pretty cool, so I thought I’d share some of the concepts here.
I tasked our intern with creating an Arduino clone. His job is to create a schematic and printed circuit board with connections similar to our Firstbot product (shown above). The main reason for the task was to introduce him to the concept of a bootloader and familiarize him with the popular Arduino product line. It also helps that he gets more experience writing C code for microcontrollers, and creating a printed circuit board. If you don’t know what a “bootloader” is you can read about it here.
I finally received the PCB for this design. And in general it turned out okay. There were a couple of shortcoming in my design that will force me to to re-spin the PCB, so it’ll be a while before I can finish everything up. But having the PCB gives me the ability to debug my firmware and test the overall concept for this solar panel tracker.
Last week the printed circuit board for the Disco Bike Light project arrived. This allowed me to move from my breadboard prototype circuit to the actual “form-factor” design. If you’re not sure what the Disco Bike Light project is you can look through some of my older blog posts (here’s my last post). The short story is that I wanted to design a flashy, fun, multicolor bike light using an existing bike light’s enclosure.
Welcome to another edition of “Disco Bike Light: adventures in electronic design”. In last week’s blog I talked a little about the printed-circuit-board (PCB) design and the Lithium battery charging circuit. This week I’ll touch more on the circuit board, and a little bit on the user interface.
In last week’s exciting episode of “Disco Bike Light” I covered some of the issues I had with this electronic design. In summary, I’ve decided to convert my bike light to a multi-color kaleidoscope of mobile joy.
I’ve been working with some high power LEDs around here. I also ride my bike to work. The cheap bike lights I’ve owned kind of suck. In fact, some barely illuminate the road. And none of them flash groovy colors. Last week I bought a $20 Schwinn light (pictured above). I really like the shape of the light, and although it is an improvement over my last lamp, it’s still pretty tame in the light production department. So I’ve decided to pump up the lumens, taste the Technicolor rainbow, and build a disco bike light. And if I use the Schwinn body I can avoid some of the mechanical design effort.
The Schwinn bike light breaks down into several pieces. The main body is the black tube where I’ll need to fit my electronics. Normally it carries three AAA batteries (shown on the left). I’ve added a AA battery for size comparison, because that ends up mattering later on. There’s also a screw-in base that has the on/off/flasher circuit in it. It’s the part with the spring attached that presses against the negative terminal of the battery pack. This part is a little strange. It operates without the battery pack and provides an open, short, or 500ohm resistance from the case to spring (ground). I’m guessing there’s a microcontroller embedded in there, but I swore not to take it apart (I’ll need that light in the coming weeks). The last piece of the light is the aluminum LED holder. It’s a thin threaded inset that connects the single white LED to the positive battery terminal.
I want to use the same parts we have on our BM014 Super Bright RGB LED Module, because, well we have them in stock. I also want to be able to program color and brightness settings, so that means a microcontroller and user interface. I’ll also have to replace the 3-AAA batteries with something else. 1-AA Lithium Ion battery would provide a similar voltage, and give me some extra room for circuitry.
The first step in this design is realizing that I’ll need to fit the Lithium Ion battery, a circuit board, and USB connector into the main body of the light and onto a PCB (for charging and communicating with the microcontroller on board).
I turned to Sketchup 8 to do some simple modeling. If I mount the USB connector directly under the rear battery mount everything works well. To do this I would have to clip and sand the through-hole tabs on the battery mount (PN: BK-92-ND at Digi-Key). If there’s no room for it anywhere else I can go that route. The image below shows what I’m going on about.
The circuit board that fits inside the tube is pretty big, I calculate it at 0.725”x2.0”. So I think I’ll have room to move the USB connector. On the top side of the circuit board will be the battery mounts. On the other will be the USB-to-serial converter, a Lithium Ion charging circuit, and an LED drive circuit. I can rotate the USB connector and get it to fit further in from the battery clips. I would also have to notch the circuit board so a USB cable will fit into the USB connector. Maybe I can find some surface mount battery tabs?
Lastly, since the housing of the bike light is conductive, I’ll have to make sure the battery terminals can’t touch the sides of the enclosure. That’s tricky, but I have some ideas about how to do it with the PCB. I’ll discuss that in the next blog on this topic.
Mixing RC transmitter signals for robot drive control is easy with out BM011 Dual Motor Quad Servo Controller. This is a design we’ve been working on for a bit, and the test software and microcontroller firmware are ready to release. This is a completely open source hardware design. The BM011 can be used to control two DC motors, can output 4 0.5mS-2.5mS pulses for driving RC servos, and read up to 4 servo channels. Files should be available on our web site within a couple of weeks.
Last week I wrote some test software that allowed me to test electronics that used serial ports. In particular I was testing our BM002, BM009, and BM010. They are RS232 to 485, IR to serial, and USB to serial converters respectively. I thought I would make it available in case it was of value to anyone else. You can download the software here.
I’ve been working on a project for a client over the last few months. Like most embedded systems, it needs a simple communications interface for use during manufacturing. The interface is used for such things as testing, calibration, and fine-tuning. For a bunch of embedded systems, the easiest and most cost effective solution is a serial interface. In an effort to reduce cost, all of the level conversion circuitry and the serial connecter were removed from the PCB. Logic level signals needed to interface directly to the system. So, in the factory, a separate dongle is necessary to provide the level conversion. In addition, the vast majority of computers now days no longer have serial ports – they only have USB ports.
Luckily Solutions Cubed has recently come out with a small USB to Serial convertor in our Breakout Module line: the BM010. Taking something off the shelf to use made it very easy to quickly get a convertor up and running for our customer. I simply laid out a PCB to carry the BM010 and the connector to the client’s board. I used the $33 PCB special from Advanced Circuits to get a low cost dongle for our client. The photo below shows the carrier board with the USB to Serial Converter attached; the BM010 is in the lower left corner.
The neat thing about the convertor is that it is based on an FTDI FT232R IC, so the USB drivers downloaded automatically in Windows and I was able to get rolling quickly. The device showed up as a COM port that I was able to access with a Visual Basic program and I could then run the client’s system through its paces. The picture below shows the dongle attached to the target system. I knew that the the break out modules were going to be slick, but even I was impressed by how easy everything came together for the USB to serial converter.