Generating arbitrary waveforms for Rigol DSG3000 series RF signal generator
Pure two-tone test signal on spectrum analyzer

Pure two-tone test signal on spectrum analyzer

I needed to get two-tone signal out of a Rigol DSG3060-IQ RF signal generator. Seems like a simple test signal that is needed for most RF testing applications, but boy was I wrong. There was no UI element to get two signals out at the same time, so the solution had to be to use arbitrary waveform generator. This takes waveform, generated in computer and plays it. Works as a basic software defined radio with IQ signal as input.

First I tried to do the official way: downloaded Rigols official Ultra Sigma and Ultra IQ Station. Ultra IQ Station was the most bug filled piece of software that I have ever seen. It has button for multi tone signal, but it gives unrecoverable error each time you think about changing a setting.

.arb file format itself

After ditching this, I moved on to the next logical step - reverse engineering the .arb file format. It seems to be somewhat of a standard, at-least in Rigol equipment, but there is no documentation on the version used in RF signal generators. After bunch of reverse engineering I figured out that it is a binary IQ dump with some headers. File starts with some binary header, then there is JSON metadata that tells the signal generator the sampling rate and number of samples, and then the IQ portion itself has 2 bytes per sample. That is pretty typical for 14 bit DAC based system. But the problem. We discovered that the binary data is somehow protected. Binary header of the file has timestamp or random seed in it and all the data has been changed with that key. Generating .arb file from the same IQ file gives different binary content each time. Unfortunately that means that it is not trivial to just add a header to your otherwise good IQ files. That also means that any .arb file generation has to rely on Rigol provided tools until somebody bothers to reverse engineer the keying.

Short example ARB file:

GÖÌÚARB.Ð...Ò......÷....óãà0.Oö.Ä|.`èÿ.g."è.®r\@}Hÿp.àL.!..3..G£Ñ`.û.oÿÀª.tð.¾(88B!.÷\ÿ.".¹..Òoê8°À¬..dE..98P.......Ù..| WÖ÷........Wæ3.........0..|....L..|isÄ÷L..|.Â.Ú....L..|©KÀ÷.PÖ÷....Þæ3.øè3.snÄ÷....²...{Clock:20000000HZ}{ModulationMode:Digital}{Value:0.874303}{Num:8}{DataSource:PRBS9}{Length:16}{SymbolRate:20000000Hz}{ModulationType:32QAM}{FilterType:Raised cosine}{FilterCoefficients :1.000000}{ImpulseLength:1}{OverSample:1}Z..7%í%LR¯Sâók{..ÿÒ.úÁ.Õ.*¼jp{.@

Official ConvDat2Arb.exe utility

While trying to figure out file formats we found a poorly documented command line utility called ConvDat2Arb.exe from one of the Rigol installers. As the limited help said it takes IQ data in either CSV or binary format and gives out .arb files. No information on data format, only the type. First we figured out the CSV. Contrary to the name "Comma-Separa Values" the tool can't handle any commas... Each value has to be on separate line and no commas can be in the file. The tool takes your maximum and minimum values and scales them properly for the signal generator DAC. It doesn't matter if values are between 0-100 or 0-100 000, it still works. It also works with negative numbers, that are converted to negative IQ voltages. I used it to generate my two-tone test signal and both, the IQ outputs and RF output worked exactly as hoped.

Secondly I tried to figure out the binary format. I knew that output file format had 2+2 bytes for each sample. And I knew that file sizes go down 4x when converting with the converter. After some testing we figured out that the input data has to be in long format. So 8 + 8 bytes per sample. With is a bit unfortunate since GNU Radio doesn't support this data type out of the box and separate converting is needed. With binary input negative numbers also don't seem to work. So the signals have to biased up from 0. But as with CSV the input file is scaled to match the signal generator and this is not something the user has to think about.

Internal memory glitches

Rigol DSG IQ glitch from internal memory

Rigol DSG IQ glitch from internal memory

With this my adventures in getting signal I need out seemed to end. But no, there is more. After testing the signal from USB stick and everything working I decided to copy the test signal to internal 1 GB memory. USB sticks tend to get lost and this is a much used test pattern. After running it from internal memory I noticed that running same file from internal memory produces endless amount of glitches in IQ outputs. So using the internal memory should be always avoided.

While putting random data in the .arb files I managed to brick my signal generator for some time. So be careful when doing further research.

Posted on 2020-01-24, 14:00 By
3 comments Categories: Soft
IvIGui for U2001A power meter
IviGui RF power meter measurement

IviGui RF power meter measurement

Lab where I work lately bought a Keysight U2001A RF power meter. It was an expensive, but is a nice device. Since the software that you have to use was subscription only I wrote my own GUI to take measurements.

As all USB connected measurement devices, this power meter needs a software to display the measurements. As it turns out, the only supported GUI for this and many other similar devices is Keysight BenchVue. BenchVue is a good and big tool for big labs, but comes with its problems. As many electronics software - it is Windows only. It also is around 1GB big and has its own license servers. Also you have to pay subscription fee. After buying measurement device for multiple thousands of euros, you also have to pay monthly subscription fee to use your legally owned measurement device.

All this seemed a bit much for me, to just take simple RF power measurements so I wrote IviGui. Most connected devices provide a way to program scripted test automation. This particular device uses USBTMC. So I took python-usbtmc library and wrote a simple GUI on top of that to measure and display this measurement continuously.

Keysight U2001A in measurement

Keysight U2001A in measurement

I also added some features that I felt, were missing in the gigantic BenchVue application. Like a blinking dot to indicate when an actual measurement is updated. Also a clear and simple way to do relative measurements to subtract cable and attenuator losses.

At the moment the GUI script only works with this device and doesn't offer all the functionality of the device. But I'm sure it can be used with other similar USB RF power meters with only minor changes.

Posted on 2018-11-23, 09:24 By
No comments yet Categories: Soft
Mains 230VAC isolator
Finished isolator on the shelf with Estonian labels.

Finished isolator on the shelf with Estonian labels.

Probing mains powered schematics is hard. Most oscilloscopes are earth referenced, so connecting ground probe to random spot of mains connected device will make a small explosion. Also there is the risk of electric shock by touching wrong part of the schematic while being in contact with something grounded like a desktop computer case.

To combat these dangers I built an isolator box. I took an 1:1 transformer rated for 230 VAC 50 Hz mains voltage used in Europe. With 0.76 A current output capability it gives me ~170 W to play with. To make it even more useful I added a second output that goes through a diode bridge and has bunch of filter capacitors. This gives me rectified DC voltage to use, since most schematics rectify it anyway.

Insides of the isolator. Most of the weight and room is taken by transformer. (Fuse not wired yet)

Insides of the isolator. Most of the weight and room is taken by transformer. (Fuse not wired yet)

For electronic construction I didn't use any PCBs. There was only a handful of components and all of them are really big and chunky so I just wired everything together. For front panel I used colour coded 4 mm with 19 mm pitch and illuminated power switch. I added fuse holder to the back, since I like to not die when working. First I tried quick acting fuse, but transformer inrush current blew it, so I settled with slow acting one.

Mechanical construction was done quite hastily. Front and back panels are made out of 15 mm polyethylene sheets. I cut the sides out of 2 mm acrylic sheets I had lying around and screwed to front and pack panel. Heavy transformer is screwed to back panel and lies on its side to provide support.

First test were successful, powered some schematics and probed random parts of it happily. After turning on high power portion of the schematic the fuse blew and no smoke escaped. So win for protection.

SRF01 teardown and reverse engineering
SRF01 components

SRF01 components

I needed small ultrasonic sensors for a flying sensor. So I got the smallest one - . Quite nice unit, works down to 0 cm. There were some problems with it - Maximum detection frequency is only ~14 Hz and the resolution isn't so great (1 cm). Also, on some occasions after falling from a high height the transducers broke and sensor would only give out constant distance reading. To fix the broken sensors (which I had many) and to satisfy my curiosity I took one apart and reverse engineered it.

From component side: It has series 3 pin connector for communication and power. Since the working voltage is 3.3 - 12 V it uses LP2980 3.3V voltage regulator to power all the components. The transducer used is 400PT from china/Multicomp. Received signal is amplified by dual 10MHz op-amp. Then it is fed to ADC. The ADC frequency 500 ksps so the whole received 40 kHz signal is digitalized for analysing. This gives the benefit of extra resolution and ability to measure distances closer than 30 cm. Normally this is not possible with one transducer design because the transducer is still ringing from transmitting.

Schematic of SRF01 analog front end

Schematic of SRF01 analog front end

SRF01 PCB backside

SRF01 PCB backside

The analog front end is an active band pass filter. First stage is configured with a gain of 26x and second one with 5.6x. Gain-bandwidth product for both stages is <=1 MHz so the op-amp is more than decent enough. Filter cutoff frequencies are 8.8 kHz for low pass and somewhere >70 kHz for high pass. Top capacitor is somewhere in the pF range where my multimeter can't measure.

The necessary driving signal is generated by two IO pins. Driving the transducer this way gives 6.6 voltage peak-to-peak to the speaker. After generating 8 pulses @ 40 kHz it switches bottom pin of the transducer to GND and top side to input.

In conclusion it is a nice little sensor. It does some nice tricks to get its performance. Control software is has one pin serial interface to get data. Biggest problem with it is the detection rate. Measurement can be triggered only every 70 ms. The reason for this is to hear echoes for the maximum range of 6 m. Good idea, but for shorter distances the time could be much shorter. This speed is good enough for human interface, but not good enough for many control applications.

EDIT: Lot of people were interested in the failiure reason and fix. The failiure was caused by mechanically braking tranducer. I managed to destroy 5+ sensors and all of them had the same problem. Broken tranducers had slightly different capacitances, I didn't measure other parameters. Same tranducers were available from Farnell for quite cheap so I just swapped these for any broken sensor.

Vocoder encoder relay board
Final vocoder relay board close up

Final vocoder relay board close up

I designed couple of vocoder encoders. Vocoders are devices that encode sound by chopping it up by frequency bands and express each frequency band only by its amplitude. This kind of representation allows to mix all the frequency bands with each other. This have been used as a method of speech encryption in the past. I build one part of the system - relay board that took analog voltages and mixed them up with each other to provide encoding/decoding.

Board itself had 12 inputs and 12 outputs. To switch the combinations between them there was 144 FRA3C-DC12 open case relays and indicator LEDs. 144 relays are needed because every channel has to have the ability to switch to every output. There would probably be smaller relays or even smaller solid state solution. But this went to an art installation it had to have relay clicking sound and see-through/open relays so user would see the movement happening. To drive all of these relays I used driver chips and for communication with central controller - a circuit with nrf24l01 chip. For communication I had to put the chip on the board because there was no good RF modules with external antennas available. External antenna was needed to reach out of the metal case it was mounted in.

First relay board after desoldering relays

First relay board after desoldering relays

First version of the board used TLC5940 LED drivers to drive the relays. Relays were rated 100mA @ 12V so I put in current limiting resistors to limit TLC current to 120 mA, just to be safe. Control circuit had Atmega168 with Arduino bootloader. Board was manufactured from 2 layer 1.6 mm FR4. After building it up problems started to appear. The code was working well and radio links were working, but switching wasn't so reliable. It turned out that led drivers with current limit at 120 mA couldn't switch some of the relays. Switching current was probably higher than 120 mA, combine that with 288 different relays that I had and some of them were bound to be a little out of spec. Secondly - the voltage regulator couldn't handle all the power needed from 5V rail. Every LED driver used tens of mA from the rail and since I had 9 of them - it added up to too much.

Mess of wires left of fixing the board.

Mess of wires left of fixing the board.

Final problem - that finally killed the board - was mechanical in nature. Board - with the size of about A4 paper, had about 1.3 kg of relays on it. When taking the PCB from the sides and rising it up from the table to move it to next one - you could hear copper tracks braking apart. Each move destroyed some tracks. Shipping with courier probably broke tens. When LEDs and relays didn't light up because of that I subsidized failing tracks with wires. But in the end, it was all wires and all broken.

Version 2

Since there was still need for a working board I designed a new board. It had the same relays, LEDs and control circuit. I used industrial hot air gun to desolder all 288 relays from the old  board. But I used new driver chips - TPL9202 8 channel relay drivers. These were rated at 200 mA, which gave me a 100 mA of safe zone. And testing showed no problems. They were 8 channel so I needed 18 of them per board, but no big deal. I also moved control circuitry to a separate add-on board to make the design more modular and easier to debug. To drive all the SPI slave select pins I used CD54HC154 4- to 16-line decoder chip. Voltage regulator issue also fixed itself - the motor controllers had their own 5V regulators built in so I just took one of those 5V lines and used it to power control circuit.

For mechanical stability - many changes were made. All the tracks going to relays were as wide as possible. I used as big teardrops for all through hole components. Also - to make soldering easier I had red LEDs with 12V rating. This how I didn't need to solder 288 small SMD resistors that could potentially fail. But the most important mechanical difference - I went to 2.4 mm thick PCB. There were some weird problems with it - like through hole headers didn't want to reach through. But the mechanical strength that came with it - amazing.

All source files are free and available. PCB design was done in Altium Designer, code with Arduino IDE.

PDF Schematic of V2

New relay board running test pattern.

New relay board running test pattern.

Backside of the board with drivers.

Backside of the board with drivers.

Control board with external antenna.

Control board with external antenna.

 

Glucose meters teardown
Three different glucose meters

Three different glucose meters

I got my hands on three different glucose meters. Glucose meters consumer level medical devices. They normally have chemical test strips that you put your blood on and then plug the strip to the meter. Meter measures the test strip either electrically or optically and displays the result.

Bayer Ascensia Entrust

Bayer Ascensia Entrust

First one to look at is the oldest of the meters: Bayer Ascensia Entrust. The design looks oldest and lowest volume. There are many components: MCU, external ADC, multiple opamps. The screen is through hole soldered. It also has a card edge connector for calibration card. With each pack of test strips there came a small memory stick with calibration data for these strips. Quite complicated and expensive, but this is what was necessary for precise measurements.

Accu-Chek Active insides

Accu-Chek Active insides

Second one Accu-Chek Active is a bit newer and looks more like a mass production device. Atmel microcontroller and only a few external components. LCD ribbon cable is hot bar soldered to the main board. Sensor looks like an optical measurement with several optical sensor dies on the PCB. Like the first one it has slot for calibration sticks.

Contour TS insides

Contour TS insides

Third is Contour TS. Smallest and most consumer level. Single chip solution, no amplifiers or calibration connectors. Buttons are rubber membrane and LCD is zebra strip - cheap and easy to manufacture.

It is interesting to see same product develop through age. All these tree provide the same purpose, but have different levels of complexity and very different BOM prices. There is more electronics integration from device to device with Panasonic custom chip in the last one. But there are also developments in sensor technology that allow to measure with same precision using cheaper electronics.

Tehnohack and players-tracking
Players-tracking team in tehnohack

Players-tracking team in tehnohack

Went to hardware hackaton Tehnohack this weekend. It's a hardware oriented hackaton that local hackerspace Skeemipesa organises. Different from hackatons I have been before this was pleasantly not business oriented, I would say less than 10% of people there weren't engineers. Most projects had some kind of business case behind it, but no big work was done on this end.

I was in team called Players-tracking. We designed a device that would track football players in real time on the field. It uses radio wave time-of-flight measurement to measure distance between radio modules. For prototype we used Arduinos and DWM1000 radio modules.

Prototype tracking boards

Prototype tracking boards

Criffin VR tracking system

One of the projects I have been working on is full body tracking for virtual reality. Virtual reality is a new hot topic in tech and gaming field with many headsets and devices being developed. I have been working with Criffin R&D for a virtual reality input device. No tech details unfortunately but a lovely tech demo showing what the system can.

Posted on 2015-10-29, 08:41 By
No comments yet Categories: Other
EDM 3 axis CNC machine

I got myself an 3 axis CNC machine from local machine manufacturer EDM OÜ. Since I focus mostly on electronic design I got a small hobby machine. It has Nema stepper motors, chinese parallel port stepper controller and 300W DC spindle. Controller is LinuxCNC and g-code is made with MeshCAM. I used it to cut polycarbonate and polyethylene pieces of a prototype.

After using it for a while I accidentally managed to destroy axis of the spindel motor. Since I needed to cut more plastics I ordered new 800W air cooled AC spindle. New spindle worked much better and quieter.

 

Posted on 2015-10-22, 19:06 By
No comments yet Categories: Other
Half Ohm in iPad Rehab

iPad Rehab did a video part on using Half Ohm to debug water damaged iPhone. Video demonstrates well how small changes - like probe pressure can affect low ohms measurements. For all the users I recommend sharp probes and when searching for a short - holding one probe constantly on one pad and moving another. This minimises errors from contacts.

Lab in Aparaaditehas

I have a new and prettier lab. Although it is smaller than the previous one. Now I reside in new creation space called Aparaaditehas (Apparatus factory).

Tech-thing electronics laboratory

Tech-thing electronics laboratory

I also started cooperation with embedded hardware developer Krakul. They are known in Estonia mainly for making solutions for drones.

Posted on 2015-10-08, 08:17 By
No comments yet Categories: Other
VoltaLumen bus stop LED screens
Demo of a installed bus stop screen that is not working at the moment

Demo of a installed bus stop screen that is not working at the moment

So Estonian LED display company VoltaLumen installed bunch of LED displays to bigger bus stops in my home town Tartu. As always - this requires a teardown. As it turned out - taking it apart without destroying it is practically impossible. It has been riveted shut and painted over. That stopped my teardown a bit.

In the accessible hatch there was bunch of debug connectors. RS485 for control over the wire, USB for programming, SD card slot for flashing firmware and GPRS modem slot. RS485 and 230VAC connections are brought out of the screens via nice cable for local controlling. Information is sent over RS485 in XML format to change bus times and clock. It also has an internal RTC, so clock synchronization doesn't has to happen every day.

From LEDs side - it uses orange PLCC2 leds. Quite high brightness, blinded us several times in the lab. Fortunately there is brightness control.

 

Overview of bus stop LED screen

Overview of bus stop LED screen

Insides of screen maintenance panel

Insides of screen maintenance panel

Close up of the LEDs

Close up of the LEDs

Infrared LED matrix
Finished soviet infrared led matrix

Finished soviet infrared led matrix

I have lately been doing bunch of different LED matrices. One of the most interesting one is an infrared matrix, made out of old Soviet infrared light that was used for data transmission (if I remember correctly - in studios). We repurposed it to LED screen that is visible only through cell phone camera.

We stripped out the insides of the device and mounted in our stackable led controller boards (link to github source). These two boards are designed to convert random amount of LEDs to Arduino controlled matrix. There is high side controller - 8 P-channel mosfets per board. And low side controller uses TI TLC5940 16 channel led controller. Low side board is stackable sideways, since I originally used it to control 8x70 matrix made out of cell phone backlights.

Insides of the device. Two driver boards, voltage regulation and Arduino Fio.

Insides of the device. Two driver boards, voltage regulation and Arduino Fio.

LATspace educational CubeSat kit
LATspace educational kit

LATspace educational kit

Ventspils University College in Latvia got itself a kit to teach cubesatellite technology to students. The kit was developed by company called LATspace. I got my hands on it and made pictures of everything.

Piece of frame and Remove before launch pin

Piece of frame and Remove before launch pin

The kit is made out of normal components so it won't work in the orbit, but it is a good studying tool for students. The cool element about the kit is that power supply and ADCS board are with same design and for different systems different parts of the PCB were populated.

EPS

Power system consists of small cheap solar panels mounted on PCB side panels. For storage there are two normal 18650 lithium ion cells and to charge them - two little linear charger chips.

Also with the system came external big battery and charger units. Probably because space industry really likes big bulky systems with D-subminiature connectors.

Attitude control and on board computer

On earth you cannot two thee axis attitude control because you have gravitation. But when suspending the model with a string, you can make attitude control around one axis. This system has one axis of reaction wheel that is controlled by L298P motor controller. The motor is a normal brushed DC motor with small flywheel attached. On the board there is also two axis magnetorquer controlled by the same motor controller chip. I couldn't find any sensors, but I presume they were hidden away to somewhere where I couldn't get.

Programmable assembled satellite model

Programmable assembled satellite model

On board computer is just an empty board where you can mount your Arduino. There is also Xbee for communication and microSD card slot.

Solar panels

Solar panels

Power system on the satellite

Power system on the satellite

Demo battery units

Demo battery units

Battery controller

Battery controller

Another battery controller

Another battery controller

Underside of ADCS board

Underside of ADCS board

Communication system with Arduino mount

Communication system with Arduino mount

Programmable assembled satellite model

Programmable assembled satellite model

Posted on 2014-11-03, 16:32 By
1 comment Categories: Space
Aoyue 950 soldering iron and vacuum pen
Aoyue 950 unboxed

Aoyue 950 unboxed

After another frustrating desoldering session I ordered desoldering hot tweezers. Because I don't know how much will I use it I bought the cheapest - Aoyue 950. The price was about 50 € with shipping.

It came with two sets of tips: sharp and big blocks. Big blocky ones looked fine but the design was so stupid that it didn't work on any component I had.

Next - I teared it apart. The insides look like normal cheap chinese station. Big ugly transformer and even uglier piece of electronics.

In the end of the day - device works, makes desoldering of some components easier. As a common tool I would recommend hot air station first but to a bigger lab - this is a good tool to have for those nasty situations where other tools are not so suitable

Insides of the Aoyue 950

Insides of the Aoyue 950

Cracked bottom from the transportation

Cracked bottom from the transportation

 

 

 

 

 

 

Double vacuum pen

Double vacuum pen

I also got a vacuum pen. Useful when using solder paste method to assemble PCBs. It is a small box with a speed control button and two vacuum heads. Mechanics are exactly the same as in regular aquarium pump. It uses two channel diaphragm/membrane pump to make the vacuum. Another trick I like is that they use non filtered mains to move pump up and down.

Device itself comes with different tips, but for small components it is best to use syringe tip on original nozzle.

Insides of a vacuum pen pump

Insides of a vacuum pen pump

Rail drilling machine
Finished rail drilling machine

Finished rail drilling machine

Me and my friends mechatronics company EDM OÜ cooperated. The result - automated drilling machine for a factory. Machine uses stepper motors to move aluminium rails and drills holes in them. Then it uses a saw to cut it necessary length. The machine is controlled from touchscreen connected to raspberry pi. Software gets in files with drill and cutting information and sends commands to low end. In the low end there is an Arduino Mega that controls bunch of stepper drivers. As necessary for such devices - everything is optically isolated.

EDM made all the mechanics and integration. I designed and made the control electronics and wrote the software. The most interesting part was writing stepper pulse generator with acceleration and deceleration. Also we found out that rotary encoders need interrupts to give proper feedback, because of small vibrations.

 

The mechanical beauty in the machine

The mechanical beauty in the machine

Mechanics moving the drills

Mechanics moving the drills

EDM made 4 axis CNC machine used to make components for drilling machine

EDM made 4 axis CNC machine used to make components for drilling machine

The case of the machine lying in EDM workshop

The case of the machine lying in EDM workshop

Insides of the electronics cabinet in the beginning - Arduino, Raspberry, stepper drivers and other necessary components

Insides of the electronics cabinet in the beginning - Arduino, Raspberry, stepper drivers and other necessary components

Night of software development, my cat quite liked the warm touchscreen monitor

Night of software development, my cat quite liked the warm touchscreen monitor

Posted on 2014-10-19, 12:35 By
1 comment Categories: Other
Tartu Mini Maker Faire

There was a mini Maker Faire in Estonia in the city I operate. I was out there with my electronics development company Tech-thing. I met bunch of awesome people, saw cool projects and met up with old friends. Because Estonia is so small, practically everybody were there.

Music triggered flamethrower head

Music triggered flamethrower head

Prototaip CNC showcase

Prototaip CNC showcase

First I saw Prototaip, a mechanical R&D company. List of other friendly faces: Wazombi labsIntelligent Materials and Systems Laboratory, Skeemipesa, robot mannequin project (Fits.me), Idea lab protocenter. There was probably bunch of more people who I forget but they know who they are.

Overrall impression was really good. The place was packed with 3D printers and kids. Didn't expect so much of either. I am waiting for the day when everyone has a 3D printer and then they go - now what.

I also talked with couple of DIY guys about 3D CAD and most of them seemed to use sketchup. Seems reasonable since it is so easy, but on the other hand - it is the most awful program to use for mechanical drawings. FreeCAD wins on every day (and of course bunch of commercial programs).

I had lots of fun and I hope that Maker Faire will be back to Estonia soon.

Wazombi labs with their 3D printer and RollyCat cat toy

Wazombi labs with their 3D printer and RollyCat cat toy

Some guys with self built CNC mill

Some guys with self built CNC mill

Tiny robots made from electroactive polymers by UT IMS Lab

Tiny robots made from electroactive polymers by UT IMS Lab

3D printers

3D printers

More 3D printers

More 3D printers

Some bigger delta style 3D printers

Some bigger delta style 3D printers

Bit of 100% handicraft computer

Bit of 100% handicraft computer

More self made computer with its maker

More self made computer with its maker

Skeemipesa exhibition - lamp radios

Skeemipesa exhibition - lamp radios

Guys from robot mannequin team

Guys from robot mannequin team

UT Idealab protocenter with its makerbot

UT Idealab protocenter with its makerbot

Brainwave controlled copter

Brainwave controlled copter

Other people making pictures

Other people making pictures

Some machine, patented!

Some machine, patented!

One of the makers of the machine

One of the makers of the machine

Solar cell soldering workshop

Solar cell soldering workshop

Led thingie soldering workshop

Led thingie soldering workshop

Posted on 2014-10-13, 12:14 By
No comments yet Categories: Other
Tartu Observatory labs
Primary electronics lab in Tõravere

Primary electronics lab in Tõravere

I have been working closely with ESTCube satellite project that is developed by Tartu Observatory. Tartu Observatory is Estonian space technology centre that does space science and builds satellites. Couple of years ago they got a new building and now the electronics labs have been shaping up too. I am working closely with them so I use the laboratories and testing facilities quite often.

Anechoic chamber, 50x50 cm unit size and up to 18 Ghz measurements.

Anechoic chamber, 50x50 cm unit size and up to 18 Ghz measurements.

Spectrum analyser and 18 GHz test antenna.

Spectrum analyser and 18 GHz test antenna.

Climate chamber  temperature (-40 to +150) °C, humidity (30 to 90)%

Climate chamber temperature (-40 to +150) °C, humidity (30 to 90)%

Vibration bench  and the amplifier

Vibration bench and the amplifier

Big (220L) thermal vacuum chamber (-40 to +250) °C

Big (220L) thermal vacuum chamber (-40 to +250) °C

Big ground station for satellites

Big ground station for satellites

Posted on 2014-09-23, 13:13 By
No comments yet Categories: Space
HUB75 RGB LED matrices with Arduino
Cheap HUB75 RGB matrix working

Cheap HUB75 RGB matrix working

Everyone likes LEDs. I like when I have a bunch of them. So one day I realised that I have about 15 big 32x16 RGB LED matrices in my lab. They are cheaper versions of Adafruit's led matrixes. Both matrices use standard HUB75 pinout. The pinout is same, LED count is the same, but display doesn't work - it is wired differently inside.

Driving matrices

Most simple way to do a led matrix is to drive low side columns with sinking driver chips and rows with high side mosfets. When you have bigger display - let's say 24 driver chips in total, then usually you will make multiple parallel lines of data to clock information faster.

HUB75

HUB75 is a standard interface to control matrices like that. It has binary inputs for mosfet control: A, B, C and D. So you can have up to 16 rows. Also, you have 6 data buses: R1, G1, B1, R2, G2, B2. Now, to control a matrix you have to know two things: how many virtual rows and columns does your matrix have and how are they mapped with reality.

Backside of my LED matrix, 24 drivers are visible.

Backside of my LED matrix, 24 drivers are visible.

Differences from device to device

The Adafruit matrix has 12 driver chips and 8 rows controlled by mosfets. Mine have 24 driver chips and 4 rows. Also, Adafruit's one seems to be mapped quite straightforward way. Mine in the other hand.. rows are separated to eight banks that are all in different directions. Still - no problem. Mark Laane, a programmer in my lab, sat down with the matrix and soon we had a working library. You can find it from here:

https://github.com/zidik/LedMatrix16x32-Alternative

Arduino Micro soldered to HUB75

Arduino Micro soldered to HUB75

Electrical wiring

I soldered my matrices directly to Arduino Micros. Since the pinout is slightly different from Uno, the connection diagram got hurt a bit. This library works with following connections:

HUB75 Connect to On Micro
R1 PB2 MOSI
G1 PB3 MISO
B1 PB4 8
GND GND
R2 PB5 9
G2 PB6 10
B2 PB7 11
GND GND
A A0
B A1
C A2
D GND
CLK A3
LAT A4
OE A5
GND GND

 

32 channel mains lamp controller
4 channel stackable thyristor board

4 channel stackable thyristor board

I needed a computer controllable 32 channel light dimmer for an art installation. After looking around a bit I found out that there isn't even a Arduino shield for the work. So I made a quick 4 channel stackable board to control lights.

The board uses SHARP thyristor based solid state relays to switch mains voltage. As normal with thyristors - all the outputs can be used as dimmers through zero-crossing detection.(Edit: It turns out since these have built in zero crossing detection, dimming is not possible) All outputs are able to handle 0.9 A / 200 W. We connected 40 W incandescent light bulbs to it but you can control whatever with it - lights, electronics, computers, motors etc.

The end device has Arduino as a controller, so all the lights can be switched from computer over USB. And since all the outputs are optically isolated from controller, the USB side is quite safe even in error situations. Also the Arduino can be reprogrammed for any preset pattern.

Get the controller source code from github: https://github.com/jaanuskalde/light-controller

Or buy it from my open source webshophttp://tech-thing.org/usb-controller-light-dimmer/

16 channels of mains switch

16 channels of mains switch

32 channel lamp dimmer overview

32 channel lamp dimmer overview

Back side of the device. USB and manual.

Back side of the device. USB and manual.

Next Page