This is a far better version of this wireless serial port. Why bother? I use them for configuring Cisco equipment for work. If you have ever been standing on a chair, balancing your laptop, trying to program a managed switch, you’ll appreciate being able to sit comfortably at a desk close by, while doing it wirelessly. Just screw the console cable onto the RS-232 and turn it on.
- New: 2-3 Seconds boot time.
- Old: 20-30 seconds.
- New: Battery life lasts around 48hrs when continuously transmitting. If you double tap the charge button on the battery it turns on an excellent flash light. Good for finding your way around the back of network racks.
- Old: About 3-4hrs.
- New: Auto turns off when inactive
- Old: Stays on until dead battery.
- New: Smaller, and easier to manufacture – minor soldering required.
- Old: bigger and now requires hardware hack, then firmware mod, etc…
This newer version was also made modular; If the Bluetooth module, or battery fail, you can easily replace it. You can also design different modules to fit on the reverse side to the Bluetooth or replace it all together. The model below is the second iteration where I added an on/off switch to the Bluetooth module.
At the heart of the Bluetooth module is a JY-MCU soldered to a daughter board with 2 RS-232 connectors, 1 for programming the device, the other one is a pass through serial port. Do a search on eBay for “DB9 RS232 Wireless Bluetooth Module Slave” – Their about $15.
In the Sketchup screenshots below the battery has been left out.
These are the STL files: serial 2 Bluetooth. The portable phone charger used is a Romoss 2000mAh, you can get them for about $15 on eBay. I printed it using natural PLA so the photos look pretty terrible. It’s also printed as 4 pieces: Battery case, battery cap, Bluetooth module, and Bluetooth module lid. You also need a male USB cable, slide switch, 2 screws (40-50mm M3) and nuts.
The setup serving audio in our kitchen was pretty conviluded and had a few too many cables jammed into a cupboard: A thin-client with powered speakers, attached to a wireless access point set to client mode. I picked up a newer set of powered speakers that came with a 30 pin iPod/iPad dock – so I looked online and found an attachment for the iPod dock that converts it to a Bluetooth audio receiver (similar to this), so you can connect with any Bluetooth enabled music device (phone, laptop, etc.). I have a laptop (Media Director for LinuxMCE) hooked up to a TV in a close room that’s on most of the time anyway, so I paired the Bluetooth receiver to a laptop and setup squeezeslave to pass audio to the speakers.
In summary: Before – Thin-client, wireless access point and speakers. Now – Speakers with a bluetooth adapter. I pulled 2 power packs, 4-5 cables and 2 devices from the cupboard. Not only am I saving power (+ money), it’s a cleaner looking setup.
To setup the bluetooth audio in LinuxMCE (12.04) I did the following:
- Check to make sure a bluetooth dongle in laptop is detected correctly:
# hcitool dev
hci0 xx:xx:xx:xx:xx:xx <– Built in device wouldn’t connect successfully. I’m also pretty sure it was integrated into the wireless chipset.
hci1 xx:xx:xx:xx:xx:xx <– USB bluetooth dongle which worked fine.
- Scan for Bluetooth devices (it must be in discoverable mode): hcitool scan
- Connect to speakers: bt-device –adapter=hci1 -c xx:xx:xx:xx:xx:xx
“hci1″ is the USB dongle, “xx:xx:xx:xx:xx:xx” is the MAC address from the above scan.
- Check to make sure it joined correctly:
# bt-device -l
- Connect the Bluetooth audio service: bt-audio –adapter=hci1 -c xx:xx:xx:xx:xx:xx
- Added device to the trusted list: bt-device –set H168C Trusted 1
“H168C” is the name of the audio device.
- Edit /etc/bluetooth/audio.conf
# If we want to disable support for specific services
# Defaults to supporting all implemented services
# SCO routing. Either PCM or HCI (in which case audio is routed to/from ALSA)
# Defaults to HCI
# Automatically connect both A2DP and HFP/HSP profiles for incoming
# connections. Some headsets that support both profiles will only connect the
# other one automatically so the default setting of true is usually a good
- Restart Bluetooth servive: service bluetooth restart
- Install squeezeslave: apt-get install squeezeslave
- List available audio devices squeezeslave detects: squeezeslave -L
0: (ALSA) HDA Intel: CONEXANT Analog (hw:0,0) (11/46)
1: (ALSA) sysdefault (42/46)
2: (ALSA) front (11/46)
3: (ALSA) surround40 (11/46)
4: (ALSA) surround51 (11/46)
5: (ALSA) surround71 (11/46)
6: (ALSA) rawbluetooth (139/139)
7: (ALSA) analog_playback (42/46)
8: (ALSA) asym_analog (42/46)
9: (ALSA) dmix (42/42)
*10: (ALSA) default (42/46)
- Test run of audio device: squeezeslave –retry -o6 <IPAddress of Server>
- Edit /etc/rc.local
bt-audio –adapter=hci1 -c xx:xx:xx:xx:xx:xx
squeezeslave –retry -o6 <IPAddress of Server> -M -Y /var/log/squeeze.log
- On DCERouter change the Media Director’s sound settings to manual.
- Always reboot to make sure the settings are all working
So far it looks pretty good, although it’s having issues starting at boot time, but it shouldnt be too hard.
This is a quick post so please consider it a work in progress. I’ve purchased some Limitless RGB LED globes and a wireless controller for them. The wireless controller, you can send it small UDP packets to make the paired globes change. By referencing their API, it’s pretty easy to write your own programs.
In this example I used an Arduino with a network shield and a PIR sensor. The goal was to get the PIR sensor to detect someone in the room and turn a desk lamp on.
Part Specifics: PIR Sensor – HC-SR501 Motion Sensor Module, Network Shield – Ethernet Shield W5100, Arduino UNO, Limitless v2 wireless controller, 2 RGB Globes
This is the program written for the Arduino. DISCLAIMER: The code is pretty dirty with no comments. It also needs some refining and cleaning up: LimitlessLED_Arduino
What the program does: Turns the lamp on, cycle down the disco modes to reach white, turn off, wait for the sensor to detect movement, turn on the lamp, and keep checking to see if there is any further movement before turning off again after a few seconds.
In future revisions of the code I hope to implement other features; Maybe beat/noise detection, and custom color animations.
When you buy a new computer or phone you often customize it to make it look and feel just the way you want. I’ve not really done a PC case mod in ages so I spent a short time finding the standard CDROM drive bay specifications (dimensions and screw hole placement), page 9. Created a template in Sketchup, printed face down, then face front. Face down looked better but face front was stronger. Changed the design to have removable legs so they can be printed separately, then screwed together. the images below were done for my gaming PC. As you can see my naming scheme is Transformers based.
The textured lines in the engraved text is where the bridging has failed. I kinda like it. Eventually I would like to fill the letter space with color, and try some aged effects, etc..
The STL File used for my LinuxMCE box is here: linuxmce3
I was out clearing some space in the shed and found these speakers. I figured I’d do a quick case for the controls and speaker outputs. It’s pretty basic, and took longer to print than design. It was only supposed to be a quick fix, and as you can see from below, the text did not turn out at all, but the rest is OK. Perhaps next time I’ll use symbols instead of letters.
The STL files are here: bassbox.
MK802 and it’s many clones/variants have been around for a while, I’ve just received mine from eBay and started to play around with it. Like most it comes with Android 4.X.X pre-installed and a few applications, some also come stock with XBMC.
The one I purchased was described as MK802, but then later was renamed as MP802 – not sure if it was a typo. It came with 1Ghz CPU, 400MHz GPU, 1GB RAM, 1xUSB, 1xOTG and HDMI (1080 resolution), with Android 4.0.4.
The version of Android installed it pretty buggy – you-tube app fails constantly, flash doesn’t work well in browser, and all in all it’s pretty slow to navigate around. If it was an Android phone, it would be unbearable.
First mod to try is getting a more fully featured OS installed – either Debian or Ubuntu. From what I have seen it should be able to boot from an SD-card with a pre-installed image.
UPDATE: After a bit of research, it’s not actually an MK802, it’s processor is an ‘Allwinner A10s‘ (1, 2). The MK802′s equivalent version is an A10 (no ‘s’ in model name) and the CPU’s aren’t compatible with each other. This makes it tougher to find compatible images, without making them myself. From what I have read, the main difference between the two is that the A10s has most of the “additional” features removed, eg; 3D engine. So you could compare it to the old Celerons vs Pentiums, except they don’t have compatible binaries, apparently.
I found an excellent tutorial and image to test Linux on the device:
Image from: https://www.olimex.com/wiki/A10s-OLinuXino-MICRO
It booted and was pretty responsive, although it had no wireless drivers. I tried to recompile from scratch, and during the process the cheap USB power adapter I was using blew, taking the ‘PC on a stick’ and the cable out with it. Sigh.
Anyway… I had already ordered another MK802 from a ‘certified’ reseller of Rikomagic, and it should be arriving in a week or so.
I have been printing very square cases for a wr703n project, and they have been leaning toward the front of the printer. I have had binding issues before and usually you hear the stepper missing the turn. But not so in this case.
During my hunt for the problem, I’ve grease all the bearings, realigned the front and rear Y idlers, broken both rear bar clamps, and ran off about 6 test prints; All with 1.5mm width walls. Only during the last print did I notice that both of my Z axis smooth rods where angled forward about the same angle as the prints… I have put a few kilos of bot PLA and ABS through it and not once did a pickup on it. I’m guessing I just skipped the step during the build where you align them with a weighted string.
Anyway, here’s a before and after comparison: Green is before, red is after.
When printing the ‘after’ object, I did notice that the first layer (PLA) was cleaner and more even.
This is just a small project to hide a laptop (used for LinuxMCE) I have in the bedroom behind the TV. This makes it a little easier on the eyes, and helps with heat dissipation (bottom of laptop facing out).
First I measured the diameter of the screw holes, found screws to fit it, then measured the widest part of the laptop, which just happened to be the heavy end. Used Sketchup to make the bracket and printed two of them:
I printed them at 70% infill and drilled the holes bigger. 70% is a bit overkill, but I don’t know how the heat from the laptop would affect them. In summary, quick, cheap, easy and does the job.
This is the STL, rotate it -90 degrees before printing it.
The Laptop is a Lenovo R500, which in case anyone is wandering, doesn’t support audio via it’s display port even with a HDMI converter, so I’m stuck with VGA/stereo audio output. It’s an older LCD TV, so it’s not such a big deal.
It appears to be easier to compile OpenWRT from source than it used to be so kewdo’s to the OpenWRT developers. I’ve made a few changes to the base image by adding the following kernel modules by default:
block-mount – 0.2.0-9
kmod-fs-ext4 – 3.3.8-1
kmod-scsi-core – 3.3.8-1
kmod-usb-core – 3.3.8-1
kmod-usb-storage – 3.3.8-1
kmod-usb2 – 3.3.8-1
(There may be a few dependencies left out)
I did have to make a few runs at compiling. I did get it to compile lcd4linux-dpf, and then it had to be removed. Still working on getting it to successfully compile again. Although I can use the previously compiled version.
With the above modules added to the base image, I just need to run the following to get the WR703n’s to boot from a pre-formatted USB thumb drive:
Most info is taken from this guide.
#-=[ Edit the following ]=-
config global automount
# option from_fstab 1
option anon_mount 1
config global autoswap
option from_fstab 1
option anon_swap 0
option device /dev/sda1
option fstype ext4
option options rw,sync
option enabled 1
option enabled_fsck 0
option is_rootfs 1
#-=[ END ]=-
mkdir /mnt/sda1 -p
mount /dev/sda1 /mnt/sda1
tar -C /overlay -cvf – . | tar -C /mnt/sda1 -xf -
Once I have LCD4Linux-DPF compiled correctly I’ll upload the repository info.