It looks like the WordPress site URL is incorrectly configured. Please check it in your widget settings.
Recently my 5.1 stereo amplifier system went kaput. The speakers and subwoofers are still working, but the DVD/FM/AUX amplifier kept failing to output sound. It has served its job well over its expected life.
So I am going to make an arduino – controlled FM radio with an integrated amplifier for the speakers.
For the microcontroller, I am intending to use the Arduino Pro Mini 3.3V 8 MHz. As for the FM receiver module, the RDA5807M or the TEA5767 looks like a good choice. I will probably use the RDA5807M due to its advanced features such as RDS and bass boost. There will be a 2.4″ touch screen for channel selection and displaying information. For the speaker amplifications, I am going to use one of those ready-made amplifier boards, either the TDA7492 or TPA3116 ones. The amplifier boards has to have subwoofer outputs as well. I might add in a infrared controller as well, if I find that necessary. There will also be an AUX input that will be switched by a relay if I want to plug in my phone or a wireless bluetooth receiver.
Speaker Amplifier (TPA3116) – Ebay
Radio Receiver IC (RDA5807M) – Ebay
2.4″ Touch Screen LCD (ILI9341) – Ebay
Arduino Pro Mini (8MHz 3.3V) – Ebay
The first test I did with the products bought was the touch screen LCD. I used the UTFT & UTouch library from Rinky Dink Electronics.The UTFT library was really slow on my 8MHz Atmega328P – powered arduino pro mini, and overclocking it to 16MHz didn’t do much either. It was really slow, especially when clearing the screen (takes almost 5 seconds). I then decided to use Adafuit’s ILI9341 library with its GFX library which runs way faster. I simply ran the graphicstest sketch to make sure everything is working.
As for the touch screen, I am still going to be using the UTouch library. However, to calibrate the touch screen, we have to use the UTFT to display the calibration points. However, there is no need to change any pins. I simply changed the pin declaration of the UTFT in the code to the one shown below.
UTFT LCD(ILI9341_S5P, 11, 13, 10, 4, 5);
Then just run the UTouch_Calibration example and follow the instructions shown on screen, including editing the calibration details at UTouchCD.h
As for the pin connections for the LCD.
LCD Arduino Pro Mini 3.3V
VCC —> VCC
GND —> GND
CS —> D10
RESET —> VCC
DC —> D5
MOSI —> D11
MISO —> D12
SCK —> D13
LED —> VCC
—–Touch Screen Controller—–
T_CLK —> A1
T_CS —> D7
T_DIN —> A0
T_DO —> D9
T_IRQ —> D8
The second test was to test the RDA5807M FM module. However, it does not usually come in a breadboard friendly 2.54mm pin spacings, so I had to make a ‘breakout’ board using a perforated board.
I used Mathertel’s universal FM radio library for Arduino. It supports multiple FM radio ICs, including the RDA5807M and it supports all of its features such as RDS and channel searching. I used the TestRDA5807M example sketch. Remember to change the FIX_STATION define to the channel that exists on the FM spectrum.
As for the pin connections,
RDA5807M Arduino Pro Mini 3.3V
VCC —> VCC
GND —> GND
SDA —> A4
SCL —> A5
ANT —> Long piece of wire or to coaxial socket from wall
RDA5807M Headphone Jack
Lout —> L (Tip)
Rout —> R (Ring)
GND —> GND (Sleeve)
For me, I also connected the TPA3116 Amplifier in parallel with the headphone jack and then powered it with a 24V power supply.
For the casing, I used an ABS project box with removable front and back panels. It is about 20 x 14.5 x 7.5 cm. I used Adobe Illustrator to plan out the layout so that when making the holes and cutouts for the casing I can just print out in 1:1 scale and use the guidelines on the paper to cut the casing.
However, I made a mistake while making the holes for the fan. I was using the dremel circle cutter to cut it. This was my first time using it and I accidentally made the hole bigger than it should as I measured the distance.of the centre of the cutter bit to the centre of the guiding pin, where the correct way is to measure from the edge of the bit to the edge of the guiding pin. The oversized hole had made it impossible to mount the fan as the M4 holes that were supposed to be drilled next to it was too close to the larger circular hole.
I then decided on cutting out the front panel. Using the toothed blade on the dremel, I cut the cutout for the LCD first.
It didn’t turn out that great either, but at least better than the back panel.
In the end I decided to use a sheet of thin aluminium as the panel backing. I bought 2 4 x 8″ pieces at Sim Lim Tower and they costed me about $3.80 each. I didn’t measure the thickness, but they were little bit thinner than the plastic panels.
As they are larger than the panel, I had to cut it to size. Using a ruler, I measured the dimensions of the plastic panel, then scribed the aluminium using a sharp knife. I then set the distance of the straight cutter using a ruler as the measurement guides on it weren’t precise enough.
Using the dremel 561 multipurpose cutting bit, I turned up the speed of the dremel to 25000 rpm and then inserted the aluminium sheet in, like how I use a scroll saw. It is important to wear protective goggles and a mask, because the high rotational speed of the cutting bit can throw the aluminium shavings all around. For me, I also taped a garbage bag below the dremel to catch the shavings.
Once done, I printed a copy of the drawings I did on illustrator on a sheet of A4 paper, cut it and then taped it to the aluminium panel. Using the circle cutter, I cut the hole for the fan. As for the slots for the speaker terminals, I originally used a diamond cutting wheel but halfway through I realised that there is a better method. It is to drill a hole on one of the slots and then, measure the distance from that hole to the edge using the straight cutter, then insert the cutting bit into the drilled hole, turn on the dremel, then move the aluminium slot upwards to cut the slot. I did the same for the cutout for the LCD, except to drill four holes on each corner.
As for the holes for the front panel, I was a simple task of just drilling M6 holes for the potientometers. Always drill the small pilot hole before drilling a larger hole. I learnt the this the hard way when the drill bit was skipping around and as you can see in the picture below, the hole was slightly off. The small little hole beside the larger hole is for the potientometer notch that holds it in position. I didn’t plan out the holes for the 2.1mm power jack and the coaxial jack, so I just drilled it anywhere that seems fitting on the back panel.
A little bit of filing and deburring on all of the drilled holes and cutouts helps to remove sharp edges.
With that all done, it is time to move on to the soldering
I used a perforated copper board for all of the components. There is not much space left in the box left after placing the amplifier, so I cut to size so that it will fit into the left space.
The first step in soldering in a prototyping perforated board is to plan out the component placement.
The next thing to solder the major components such as the arduino, fm radio ic chip and the relay. I used 0.1″ female headers as sockets so that I can replace the component if it happens to malfunction.
More updates to come!
This project is a continuation/improvement of the Personal Transporter V2.
The personal transporter V2.0 has improved significantly from the V1, but it still has some problems. One of the problem was I had used too thin of a plywood (10mm) and when I stood on it, it flexed and would cause problems for the motor/coupler mechanism. It also had a PVC pipe mount as I had originally thought of using a PVC pipe for a handle for the personal transporter but ended up not using it. The V2 was also quite large, it was about the same size as the V1, only lighter. There was a lot of wasted space. Another problem of the V2, although minor, but still quite important is that the motor is mounted on a bracket meant for shelving units. The last problem was that the V2 is a three wheeler, which means I had to balance on the one caster wheel and with 2 driving motors (The V2 was front wheel drive).
With all that, I decided to improve the V2. I am going to be using almost all of existing parts from the V2 to make V2.5.
GW370 Motor Bracket Ebay Link
For the plywood, I used a leftover that I had found in my school’s Fab Lab. It was 12mm thick, with 3 layers. I had it cut to 30cm x 35cm as I found this is the perfect spot because I did not have to squeeze my legs together so close. Always plan by placing down the parts on the uncut plywood. Using a power jigsaw that I had loaned from the Fab Lab, I had it cut with the help of my friend holding down the plywood down. Make sure to use a dust mask and goggles as the plywood particles a very fine.
Once cut, I used a dremel with a grinding attachment that I had borrowed from a friend to file of the surface irregularities and straighten it.
After that, I placed all the parts again on the cut plywood to make sure everything fits, just to make sure. I then marked and drilled the mounting holes for the motor, caster wheels and the bearing using the appropriate drill bit size. As I wanted the the plywood to be flat and all screws flush, I had to also drill counterbore holes. However the bolts for the caster wheel had a 13mm diameter on the screw head, I had to use a dremel with the grinding bit to make the holes fit the screw head.
Once all of the holes have had their counterbore treatment, its time to spray paint it. I had some leftover from the V2 project, so I just used the same grey spray paint. I sprayed 2 coats on the top base and 1 coat on the underside part as I thought nobody would really see the bottom part.
I reused all the screws from the V2, except for the motor mount as it it different. I used M4 x 15 screws for that. As for the battery, I changed the mounting method by attaching one side of the velcro on the battery and the other side to the plywood. The adhesive is really strong, so it is guaranteed not to come off while travelling. As for the electronics, the arduino and the motor driver was mounted using the same velcro as the battery. As for the HC06 bluetooth module, I used a cable tie adhesive base and cable tied the module to it.
Every wire was cut to be just enough to reach its intended place, including the motor wires. I also used the cable tie adhesive base to keep wires secured.
The old app that I used was a ‘digital’ control. Its had only 8 direction of movement. I had originally planned to make my own app but I haven’t really got the time to do it. So in the meantime, I found this app called “Joystick bluetooth Commander”. It is much much better than the previous one I had used. It has analog control and speed control on a joystick, meaning you can control it only using one hand. (That is if you can hold your smartphone in landscape mode using one hand). It is also very customisable, you can add buttons to the app and receive data values such as battery level from the arduino.
More close up shots below
Project Advisor : Teo Shin Jen (http://shin-ajaran.blogspot.sg/) and funded by Singapore Polytechnic
If you have not read the article on the P.E.T V1, read here.
My first version of the personal transporter was really bulky, heavy and quite slow. I can literally workout with that thing. It was made of recycled parts from previous projects, so it wasn’t really a good one and I have very little control over the size and customisability of the parts. The 24Ah LiFePO4 battery is too overkill and too heavy. The Sabertooth is too overkill as it is rated at 25A and the motor mount is too heavy as it is made of a solid aluminium block. So I am going make a new one from scratch using brand new parts, so that I can customise everything. It is going be smaller, lighter and has faster speed.
For the overall size, it will be about half as much as the current P.E.T. As for the motors, I am going to use a geared motor which is much lighter and smaller than the wiper motor. For the wheels, I am going to use 100mm scooter wheels that are going to be driven by the motors. It is going to be mounted on a bearing. As the wheels have a 22mm diameter mounting hole, I am going to use pololu’s 6mm scooter wheel adapter. Both of the motors will be driven by a RoboClaw 2x15A motor driver, which is cheaper than the sabertooth. All of these will be powered by a 5000mAh 4S 14.8V LiPo battery. Lastly, there will be a handle added to the PT.
Motors – Ebay
Wheels – Ebay
Batteries and charger accessories – Hobbyking.com
Motor Driver and scooter wheel adapters – Robot R Us (Singapore – based online robot shop)
Coupling, bearing holders, shaft – Misumi
Plywood, PVC pipes and pipe joints – Local hardware shop
The motors are the most important thing in this project. I used a 160 rpm worm gear motor that has 10kgcm of torque which should be enough for this application. At no load, they take about 1A of current. They cost about SGD55/USD41 each. You can buy it here. If you’re choosing other motors, aim for one that has high torque (~10kgcm or higher).
As for the handle, I thought of using aluminium extrusions but they are quite expensive. I then decided to use PVC pipes with a T-joint at the top to make it like a handle. I used a 32mm diameter one, but I’m not sure why its labeled as 25mm. Its cheap though, so I’m not complaining. I paid SGD 4.20 for about 2 meters of the 32mm pipe.
I used 100mm scooter wheels as I thought that they would give me a balance between moderate speed and high torque. Scooter wheels also have high traction against the ground. Most of them have bearings installed in them, so try to get one that doesn’t have the bearings installed as you would have to knock them out, possibly damaging them in the process. I bought this particular one. They have a 22mm bore hole after the bearings are removed, so I used pololu’s scooter wheel adapter. I used the one with 6mm bore. You can get them here or if you’re in Singapore, here.
Batteries and Accessories
I bought the LiPo batteries from hobbyking.com , as they are priced reasonable and has fast delivery service. I bought a hard-cased Turnigy 5000mAh 4S battery. It has a rating of 20C (which means it can discharge at a rate of 20 times its capacity i.e. 20C x 5000mA = 100A). They are quite cheap, at USD25.85/SGD35, a price that other shops definitely can’t beat. They are in fact genuine.
I also bought a Hobbyking ECO6 50W Balance charger for USD19/SGD25. It is a DC charger, so I also bought a hobbyking 60W 15V Switchmode power supply for it. Along with that, I also bought some adapters for the 4mm HXT bullet connector for the battery, 2 battery voltage alarm/checker and velcro straps for the battery.
Previously I used the Sabertooth 2X25 on the P.E.T. However, they are too overkill and quite expensive, although I got it for free. I decided to use Orion Robotics’s roboclaw 2x15A motor driver. It has regenerative braking, which means the kinetic energy from the spinning motors will be converted to electrical energy to charge the battery when it is braking/slowing, similar to how electric trains brake. This saves power as the battery does not have to be very large, allowing for extended range. It has a simple serial mode which I plan to use. In the future when I have extra time I might use the packet serial mode which can feedback to the arduino about motor voltages, battery voltages as well as have better control over the motors. You can buy it here or if you’re in Singapore, here. If you’re going for a cheaper one, you might want to consider getting Pololu’s Simple Motor Controller series or even use a simple MOSFET to control the motors using PWM.
The wheels are direct-driven and have to be mounted on a mount. I originally wanted to use a pillow block but I could not find one with 6mm bore. I then thought of using a pillow block with plastic bearing but having limited experience of using plastic plain bearings (I only used it once), and I’m not sure whether it works for high load applications. I then decided to use a customisable bearing holder that has a 626 bearing(6mm bore) installed from misumi. Misumi does not sell to individual customers, they only sell to companies so I ordered them through my school.
As for mounting of the motors, I am planning to use steel 90° shelf mounting brackets. I will drill holes based on the spacings of the holes on the motor’s gearbox.
Fabrication of The Personal Transporter
(As for the fabrication part, my friend Max also helped me)
We started with cutting the plywood to a suitable size. Originally we thought of cutting it to 40cm x 30cm but it proves uncomfortable to stand with my feet so close together. I decided to cut it to 40cm x 40cm square, 5 cm smaller than the previous personal transporter.
As for the PVC pipes, my friend had a really awesome idea of storing the handle under the transporter when not in use. They would be secured to the plywood board using velcro straps. So we decided to cut the 1m pvc pipe into 30cm sections so they could fit below. Using straight joints, they could be combined into a 90cm handle. At first we thought of using a 3D printed mount to mount the handle to the wood, but 3D prints are not very strong so we decided to use a screwed coupler for the handle. We had to ‘mill’ a large hole in the wood to get in the screw coupler. Tedious, but works better than the 3D print mount.
For the mounting of the motor, we used the 90° angle bracket used for shelves. We counterbored holes for the M4 screw heads so they would not protrude out as that would look unsightly.
We spray painted both the plywood and handle so that it will look nicer and cleaner. For the handle, we used a matte silver colour to give it a metallic look and as for the wood we used dark grey so that it would not get look dirty easily. A few coats had to be given in order to hide the underlayer.
We used misumi’s bearing holder with a 626 bearing preinstalled. It is made of solid aluminium so it should be more than enough for a human’s weight. Similarly, we also counterbored holes on the plywood side so that the screw would not look unsightly.
The magic smoke of the motor driver
I was testing the battery with the motor driver at one time. The 5V BEC pin of the motor driver was connected to the Vin pin of the arduino as the 5V pin was used for the HC06 bluetooth. I unplugged the battery from the motor driver, and then inserted it in to the HXT 4mm to 2.1mm connector and then connected the 16V battery to the arduino, not realising the Vin pin is still connected to the 5V pin of the motor driver. The magic smoke was released, and that was the end for the motor driver. Luckily, upon further scrutiny, the MOSFETs look ok, but the 5V switching regulator has burned. I might be able to salvage it, but that will be in a future blog post. I had to use an old sabertooth 2×5 from another student’s project for now, although now I also have to add in a 7805 5V regulator as the sabertooth 2×5 can only supply 10mA for battery voltages above 12.6V.
Attaching Couplers to Motor Shafts
Completed P.E.T V2
Read Personal Transporter V2.5 here
Project Supervisor : Teo Shin Jen
Over the last few years, various wearable technology have been created by various IT companies. VR headsets, smartwatches are some of the few examples. Smartwatches have become more and more popular as it provides the platform for the user to check on notifications on their phone without whipping out their phone. It has become a convenient gadget for a lot of people. Although more affordable models exist, what’s the fun of just buying one when you can make one for less than $40? Today I will be showing you how I made mine that connects to an Android Phone and shows SMS notifications and syncs time with an android smartphone.
Step 1: Parts needed:
1. 0.96″ Or 1.3″ SSD1306/SH1106 SPI/I2C 128×64 OLED Screen (From ebay)
2. An Arduino Pro Mini 3.3V with ATmega328P (From ebay)
3. An Arduino Uno or a TTL-Level 3.3V USB to Serial Converter (From ebay)
4. HC06/HC05 Bluetooth Module (I recommend using HC-06) (From ebay)
5. Wires (as small as possible. I used wire wrapping wires)
6. A small Li-Po battery below 500mAh (Choose according to your size preference, I used 600mAh) (From local shop)
7. Small Push Buttons
8. A TP4056 Li-Ion Battery Charging module (I recommend the one with the battery protection circuit.) (From ebay)
9. An Android Phone
If you need the ebay links don’t hesitate to comment below and I will add the links for you.
Step 2: Before we do anything, we must make sure that everything works by prototyping on the breadboard. I recommend using an Arduino Uno as it is more convenient when prototyping and similar to its mini counterpart, the Arduino pro mini, except it is 3.3V. If you’re using a bare HC05/HC06 without a breakout board, you should use resistors to step down the I/O voltage to 3.3V on the VCC and RX line of the Bluetooth module. (I recommend using 330 ohms and 1kohm. The centre pin between the 2 resistors is the step-downed voltage) Same for the OLED. However most SSD1306/SH1106 OLEDs are 5V tolerant. Check with the manufacturer/seller for more info.
Firstly, I planned the watch face using Adobe’s Illustrator. I made a new file with its width set to 128 px and height to 64px, representing each pixel on the OLED display. I then used the U8glib library to code the drawings on the OLED. At that time, I temporarily used the millis() function to increase the time from 0. Next was the menu system. I had originally planned to use 4 buttons for the watch (1 for next, 1 for previous, 1 for menu, 1 for select) but I figured out its too many. 3 would be enough. I combined the menu button into next and previous button. When both buttons are pressed, it would go to the menu. Similarly, I used Adobe Illustrator to plan the menu.
The menu system works based on another separate function. Once the user presses the select button, the function would return a number, for example ‘2’ would mean the user selected the apps menu. The void loop function would then run the app menu function. Next is to program the most important part of the watch, the bluetooth sync SMS and time sync capability. I actually developed the android app using MIT’s App Inventor 2 first before I start on the Arduino side. I will explain more on the app on the next section. For the SMS part, I did the coding on a separate program so as to make it easier and not confusing. After I have made it working, only then I would combine both of them together. Test the arduino program by pushing both buttons that are connected to pin 7 and 5. It should go on to a menu. Pin 4 is the select menu option. If it does, you have done the connection correctly.
Step 3: The Android App I used MIT’s App Inventor 2 to develop the app that interfaces with the watch as it only involves dragging and dropping blocks. I utilised the Texting and bluetoothClient modules. Basically how it works is that the texting component will receive and store the text message into a String variable. It will pass the variable to the bluetoothClient component which will affix a ‘2’ to the front of the string so that the arduino can identify that this string is a text message. As for the time sync function, I used the clock component to get the current time of the phone. It will then pass it to the bluetoothClient component which will then affix a ‘1’ to the front of the string so that the arduino can identify that it is a string of characters that represent time. Test the app by first installing it on your phone, and then connect to your HC05/06 by selecting connect and then selecting your HC05/06. Note: You have to pair your HC05/06 to your phone in your android settings menu for your phone before you can connect it in the app. Make sure your bluetooth is turned on. You can download the app (apk) here
Step 4: Soldering everything together
Firstly I removed the reset button on the pro mini as it might be accidentally pressed when the watch is assembled. Also, it is the tallest component on the pro mini. I heated up one of the pads and then used tweezers to lift the button up. Then I heated up the other side and lifted up the whole reset button.
The next thing I did was to remove the header pins on the OLED screen. The best way to remove it is to heat up one of the pins, and then slowly lift up the pin one by one when they become loose. After all of the pins are lifted, the plastic part of the header can then be lifted up easily. After that, I used short wire wrapping wires to solder. Remember, the objective is to use as little wire as possible as wires can.
Step 5: 3D printed casing + watch strap
I plan to use the ninjaflex flexible filament for the casing. My friend suggested that we print a small rectangular sample for the strap so that we can test the flexibility of the ninjaflex strap as this is our first time using it. Since it was recommended that the print speed for the ninjaflex filament set at 30mm/s, we had it set to 20mm/s, just to be cautious. We used the school’s Makerbot Replicator 2 with the spring loaded extruder. Originally the school’s makerbot had a plastic build platform, but then it was replaced with a glass one with flashforge’s pre cut print tape. There was a bit of imperfection on one side, but that is due to the unleveled build plate.
As for drawing of the casing, we at first modeled all the parts including the OLED, HC06, Pro mini and TP4056 charger board in CAD (Autodesk Inventor). Then we assembled it in CAD and then only we modeled the casing around it.
Arduino Code: https://github.com/hassanul/Arduino_Smartwatch/blob/master/Watch.ino
Android App (APK): https://www.dropbox.com/s/ck48c0nthlh4jib/BluetoothSMS.apk?dl=0
Today I will doing a short review of the UNI-T UT136C auto ranging multimeter. I got this for 20.95 USD from ebay which also converts to 28.32 SGD in today’s rate, which is bargain for an auto ranging multimeter. Shipping was free, and I got it in just 10 days, which is fast compared to the usual 3 weeks for shipping from China to Singapore.
It arrived in box, without the retail packaging, indicating this unit must be factory direct. It came with a set of probes, a Chinese manual and a K-type thermocouple. The multimeter was wrapped in a bubble wrap, not the best one, but it came in one piece so it’s ok. For the manual, a Chinese version was included but there is an English version available on UNI-T’s English website as a pdf download. The probes were okay, a little bit thicker than the ones I used in my previous crappy $20 multimeter that had malfunctioned. There is no strain relief at all on the plastic ends of the probes. For that price and a great build quality you can’t really complain that much.
The build quality of the plastic probes feels solid, and its much thicker then the previous ones that I had used. The wires are also quite flexible. However, I would recommend getting another better set of probes. For the main multimeter itself, it is surrounded by what I would call soft touch plastic. Its red in colour, really nice to hold and has an ergonomic design due to its small size. It feels heavy and has a solid build construction. It has a flip out stand that is held in place by friction.
The LCD screen has 4 digits, enough for hobbyist use, which is what I intend to use it for. There is no backlight or single-led backlight so the LCD screen is a might be a bit hard to see under bright light but under normal room lighting it looks ok. Its size is approximately 5cm by 2cm.
There is an auto off option, where it will turn off after 10 minutes, a nice feature if you always forget to turn the multimeter off. It will sound a beep at the 9th minute to indicate to the user. There is an option to turn off this feature by holding down the select button when turning on the multimeter. The buttons are plastic, so none of those cheapy crappy membrane buttons.
The K-type thermocouple provided is not really of a good quality. It can only be used in temperatures of up to 230° C. The multimeter can measure up to the nearest degree. It measured 32 degrees C on ambient temperature in an air conditioned room, but I think it is off by 2-5 degrees, so I would only use this as a reference. As the manual indicates, it has an accuracy of ± 2.5%
The continuity measurements are not latched, but its fairly quick. It is sometimes intermittent even though both probes are literally touching together with me applying some force, but I think this is due to the probes themselves. I recommend users that use this feature a lot to get a better set of probes.
The autoranging feature is quite fast, although the autoranging in the resistance measurement can be slow. For me, I don’t really mind this as I use this measurement very rarely. As for the autoranging on the voltage measurement (which I use the most), it managed to get a stable reading within a second.
I particularly liked the 9V battery holder. The battery holder uses a removable holder which the battery sits into. So none of that fixed wire 9V connector.
As for the accuracy of the measurements of the multimeter, I’m not going to do it as I don’t have the proper equipment.
In conclusion, I would definitely recommend this multimeter to anybody who is starting hobbyist electronics. With its great build quality and price, its a good multimeter to start with.