High Voltage Coils

electrical and mechanical engineering

How to use Atmel’s “atprogram” cli command line interface to program a production file into an xmega

Posted on 12. September 2017 in low voltage experiments

Hi all,
a very long headline for this simple task, but it hits the spot! Former Atmel (now Microchip) provides a very powerful back end programmer, intended to be used within a production line, to automate the programming process, without having to use Atmel Studio.

What are the benefits of using a production file? Very simple, have the user signatures, eeprom, flash and fuses combined in a single file. Then write a little batch script to burn this elf image into multiple micro controllers.

 

1.) How to generate a production file?

Open your project with Atmel Studio, then enter the “Device Programming” dialog. There is a own tab called “production file”. Use the lower half of the dialog, below the “Save to ELF production file” line. Choose a valid hex file for the flash, optional a eeprom and user signitures file. Then choose which of the files should be stored from the check boxes. Note that it is also possible to store the fuses and lockbits. If checked, the fuses and lockbits of the currently connected micro controller will be stored, so make sure they are configured correctly. Click on the “Save” button to store the production file.

 

2.) How to flash a production file from Atmel Studio?

Test your production file by using the upper part of the dialog. Enter a filename into “Program device from ELF production file”. Next choose which part of the production file you want to flash, all none existing parts will be grayed out and are not select able! Click on “Program” to flash the whole device with a single mouse click, very handy 😉

 

3.) How to flash a production file from a batch scrip without Atmel Studio?

Create an empty text file and name it “start_flash.bat”. Copy the textfile provided below, alter your device and tool, then start flashing.

@echo off
cd "C:\Program Files (x86)\AtmelStudio7.0\atbackend"
c:
atprogram -t atmelice -i pdi -d atxmega32a4 program -c -fl -fs --verify -f "d:\mytestfile.elf"
pause

After execution will result in the following console output.

 

A little bit of explanation:

“@echo off” will silence the console directory output after each script command, when removed, the result will be much more unreadable

“cd” will change the directory to the atbackend path of the Atmel Studio installation folder, make sure this folder matches your installation path

“c:” is just here for the purpose if you start your batch script from a different drive then c:

“atprogram” is used to do the heavy lifting
“-t atmelice” means which tool i want to use, enter “atprogram list”  to see all available tools, for example my output
simulator       No serialnumber found
atmelice        J41800059125
“-i pdi” means i want to use the pdi interface for programming
“-d atxmega32a4” is my target microcontroller

“program” means i want to flash the contents of a file
“-c” perform a chip erase
“-fl” write flash
“-fs” write fuses
“–verify” after programming, memory contents need to match the target file
“-f <filepath>” this is my production file

4.) I want additional information about the features of atprogram!

use the console commands
“atprogram help” to get a full list of features.
It is also possible to get additional information about a single command, for example
“atprogram help program” will give you detailed information about all command line parameters available for the “program” command.

Fix android black screen while telephone call, unable to end call

Posted on 9. August 2017 in low voltage experiments

Hi all,

recently i had a serious problem with my Android Sony Xperia Z3. Everything is working perfectly, but as soon as i receive a call and i accept it, the display turns off and i am unable to use the phone. After doing a little research, it seems this is quite a common problem for the Xperia phones.

The reason is very simple, there is a proximity sensor on board, which detects if the phone is held to the ear. If so, the display will turn black, to prevent accidentally pushing any buttons (like dismiss call ).

 

 

 

 

How did i manage to fix this issue?

1.) Hotfix to be able to use the phone and end a call, even with black screen

Settings->Accessibility

Enable “Power button ends call”

2.) Do a hardware test and see if the sensor is working

Settings -> About phone ->Diagnostics->Test -> Ear proximity

3.) Lucky in my case the sensor is working, but only if i apply pressure to it, doing so i found out that the display is loosing connection to the housing. If there is a gap between the sensor and the display, it will not work correctly, so time to glue the display to the housing.

4.) get a cheap replacement “display seal” from ebay (look for “xperia z3 klebedichtung” in german)

5.) Switch off the phone, clean the whole display on the outside

6.) Carefully heat up the front plate with a hairdryer, remove the front display.

7.) Clean all sensors on the inside

8.) Put in the new seal and press the cleaned display to the housing to have a solid connection

9.) Turn on the phone and see if everything is working again 😉

 

 

[Top]

Erfahrungsbericht Motorradbatterien Blei und Lithium

Posted on 1. May 2017 in Motorcycles

Über die Jahre habe ich schon so einige Batterien in meinen MotorrĂ€dern verbaut, jetzt möchte ich kurz festhalten wie lange die Batterien gehalten haben. Das verwendete LadegerĂ€t war ein “CTEK MXS 5.0”. Das LadegerĂ€t verfĂŒgt ĂŒber eine Überwachung und schĂŒtzt so die Batterie vor Überladung. Jeden Winter wurden die Batterien ausgebaut, im Wohnraum aufbewahrt und ca 1 mal im Monat nachgeladen.

FĂŒr meine Solomaschine benötige ich den Batterietyp YTZ10S 12V / 8,6Ah Wartungsfrei AGM.

  1. Banner BIKE BULL YTZ10S/50901, gekauft 2011 hÀlt 4 Jahre
  2. DELO GEL YTZ10S (DIN50901), gekauft 2015 hÀlt 1 Jahr
  3. Shido YTZ10S Lithium ION, gekauft 2016, noch immer verbaut

Das Gespann benötigt den Batterietyp YTX20L-BS / 18Ah, hier wird auch im Winter gefahren, jedoch zyklisch einmal im Monat nachgeladen

  1. Toplite YTX20L-BS, gekauft 2015 hÀlt 2 Jahre
  2. Shido YTX20L-BS, gekauft 2017, noch immer verbaut

Wie man sieht habe ich umgerĂŒstet von Blei auf Lithium.
Der Mehrpreis bei der Anschaffung wird sehr schnell vergessen wenn man die Vorteile der Technologie anschaut:

  • Die Batterie ist viel leichter als eine Blei Batterie
  • Die Anzahl der Ladezyklen wird mit 1000 angegeben, Bleiakkus liegen zwischen 150 und 300 Zyklen
  • Sehr geringe Selbstentladung, nach dem Auswintern kann sofort gestartet werden

NatĂŒrlich gibt es auch ein paar Nachteile

  • Bei Temperaturen unter 0 Grad kann nur mehr ein Bruchteil des Stromes entnommen werden, zum Starten reicht es meistens nicht aus. Im Vergleich funktioniert der Bleiakku hier wesentlich besser, bei kalten Temperaturen halbiert sich die KapazitĂ€t, jedoch reicht das meist aus um den Motor zu starten.

 

Bisher bin ich sehr zufrieden mit meinen Lithium Batterien, vorallem das Startverhalten nach lÀngeren Ruhepausen macht die Technologie sehr interessant.
Auch Finanziel sollte sich die Batterie rechnen:

  • Blei Akku Anschaffung ca 50€ , hĂ€lt 200 Zyklen, nach 2 Jahren zu tauschen
  • Lithium Akku ca 100€, hĂ€lt 1000 Zyklen, sollte nach 10 Jahren zu tauschen sein

Ob sich das Rechenbeispiel ausgeht wird die Zukunft zeigen. Sobald ich eine neue Batterie kaufen muss werde ich den Beitrag updaten.

 

 

[Top]

Mercedes Keilrippenriemen / “Keilriemen” quietscht

Posted on 2. October 2016 in Cars Mercedes Benz C-Klasse TC 220 CDI BJ1999 / W202

Wenn der Keilriemen quietscht oder die Batteriewarnlampe wĂ€hrend der Fahrt aufleuchtet, wird es Zeit den Riemen zu ĂŒberprĂŒfen. Das dauert je nach Geschick maximal 30 Minuten und kann sehr leicht selbst durchgefĂŒhrt werden.

Benötigtes Werkzeug:

  • T60 Torx mit Ratsche
  • Sicherheitssplint (max 5mm durchmesser, Notnagel)

 

Informationen zum Antrieb:

  1. Umlenkrolle
  2. Lichtmaschine / Generator mit Freilauf
  3. KĂŒhlmittelpumpe
  4. Kurbelwelle / Antrieb
  5. Spannrolle
  6. KĂ€ltemittelverdichter
  7. Lenkhelfpumpe

keilriemen

Der Riemen wird ĂŒber eine art Federsystem in der Spannrolle (5) selbststĂ€ndig gespannt. Um den Riemen zu sĂ€ubern bzw zu wechseln, benötigen wir einen Torx Aufsatz fĂŒr die Ratsche, damit Fahren wir in die sternförmige Aussparung und ĂŒben Druck nach gegen den Uhrzeigersinn aus. Der Keilriemen wird entspannt. Um ein plötzliches zurĂŒsckschnellen des Spanners zu verhindern, wird durch das kleine Loch unter dem Torx ein Splint durchgesteckt, der hĂ€lt den Spanner davon ab wieder in die Ursprungsposition zurĂŒck zu kommen.

dsc_0953

SĂ€mtliche LaufrĂ€der werden auf ihre LeichtgĂ€ngigkeit geprĂŒft und feinsĂ€uberlich von Öl und Schmutz befreit.

 

In folgendem Video sieht man die Unterschiede im Laufbild des Keilriemens. In der ersten HĂ€lfte des Films hört man laute “Knack” GerĂ€usche, diese werden durch den defekten Freilauf der Lichtmaschine erzeugt. Die Lichtmaschine wird nicht angetrieben und die gesamte elektrische Energie wird aus der Batterie entnommen. ZusĂ€tzlich leuchtet die Ladekontrollampe auf. Koppelt der Freilauf wieder ein, wird die Lichtmaschine stark belastet und geht ein starker Ruck durch den gesamten Wagen. In der zweiten HĂ€lfte wurde die Lichtmaschine getauscht und alles ist wieder im Normalzustand.

LaufgerÀusch auf YouTube

 

[Top]

Mercedes lÀuft im Notbetrieb und schaltet nicht mehr hoch

Posted on 29. September 2016 in Mercedes Benz C-Klasse TC 220 CDI BJ1999 / W202

Hallo,

ein lĂ€stiger Fehler hat sich neulich eingeschlichen. Beim Fahren schaltet der Wagen plötzlich nicht mehr in den zweiten Gang. ZusĂ€tzlich ist beim Umschalten zwischen D, N und R ein starkes Ruckeln spĂŒrbar. Keine Panik, die Automatikschaltung lĂ€uft im Notbetrieb, also mit niedriger Drehzahl und gemĂŒtlichen 20km/h zurĂŒck in die Garage.

Die Lösung war hier relativ simpel. Die Fussmatte im Beifahrerraum muss vorsichtig gelöst werden.

dsc_0928

 

 

 

 

 

Beim Ausbau stellte ich fest, der Boden ist mit einer öligen Substanz benetzt. Schnell trockengewischt und weiter gehts. Nimmt man die Bodenmatte heraus, kommt man zur Fußplatte, an deren Hinterseite sich das Automatik SteuergerĂ€t befindet.

dsc_0930_pos

 

 

 

 

 

Durch lösen der drei gekennzeichneten Muttern, kann man die Montageplatte herausnehmen.

dsc_0932

 

 

 

 

 

Der Kabelstrang zum SteuergerÀt war komplett verdreckt und verölt. Löst man zwei weitere Schrauben auf der Platte, kann man das SteuergerÀt abbauen.

Als nĂ€chstes mit einem WattestĂ€bchen und einem Tuch sĂ€mtliche Kontakte des SteuergerĂ€tes und des Kabelstrangs reinigen. Soweit möglich den Kabelstrang mit bremsenreiniger Ölfrei bekommen. Wenn alles wieder trocken ist, in umgekehrter Reihenfolge einbauen. Problem gelöst.

[Top]

Errorcode C1025 / BAS ASR lamp stays on while motor is running

Posted on in Cars Mercedes Benz C-Klasse TC 220 CDI BJ1999 / W202

Hi all,
recently the BAS and ASR lamp of my motorcar stayed on while the motor was running. The cruise control is also not working.

Tools used:

 

Reading out the errorcode came to the result:

BAS reported the errorcode C1025
which could mean
* CAN communication with ABS (N47) not working
* CAN communication general fault
* signal from break light switch fault
* CAN signal wheel speed sensor or ABS fault

1.) check the signal integrity of the CAN C BUS

CAN C – Engine CAN or chassis CAN, fast speeds 125kbps or 500kbps
CANH active 3,5V, dormant 2,5V (Usupply /2 = 5 / 2 = 2,5V)
CANL active 1,5V, dormant 2,5V

001_can_motorraum

 

 

 

 

 

2.) check the signal integrity of the CAN B BUS

CAN B – Interior CAN or body CAN, low speed 83kbps
CANH active 4V, dormant 1,6V (Usupply /3 = 5 / 3 = 1,6V)
CANL active 1V, dormant 3,3V (Usupply * 2/3 = 5 *2/ 3 = 3,3V)
003_gesamter_bus

 

 

 

 

 

3.) Check the wheel speed sensors

Find the ABS control unit in the electrical box at the front right side of your motor room.
Unplug the whole connector and measure the DC resistance.
Lift up a wheel and spin it, the result should be a sine wave.

ABS / connector #2 / PIN 43 + 44 / Resistance 1,1kOhm
Front Left :
vl

 

 

 

 

 

ABS / connector #2 / PIN 17 + 18 / Resistance 1,1kOhm
Front Right:
vr

 

 

 

 

 

ABS / connector #1 / PIN 12 + 13 / Resistance 1,1kOhm
Left Rear:
hm

 

 

 

 

 

ABS / connector #1 / PIN 14 + 15 / Resistance 1,1kOhm
Right Rear:

<no picture available>

The sine wave of the Left Rear sensor does not look clean. Unscrew the sensor, clean the impulse ring, replug. Check the signal again, bad luck, no change. Buy a replacement part, Error is gone.

 

 

 

[Top]

Ural Ranger Model 2014 fuel sensor and indication lamp

Posted on 17. July 2016 in Motorcycles

Hi folks,
my favorite motorcycle has a little issue. A fuel sensor is available in the newer models. It is directly connected to the fuel indication lamp. If no fuel is present, the lamp is lit. Problem is, after turning the ignition, it does not flash up, so you dont have an indication if the fuelsensor or lamp is working. If you drive longer routes and you rely on this feature, you may find yourself in a situation without gas.

I developed an easy solution with just a few parts.

stecker

The original connectors used are from the company MOLEX
Mizu-P25ℱ 2.50mm Pitch Waterproof Wire-to-Wire Plug Housing, 3 Circuits

MALE
52116-0341
MALE_CRIMP
50038

FEMALE
052117-0341
FEMALE_CRIMP
50039

All products are available from the electronic supplier tme.eu (which kindly also ships to private households)
male crimp
male connector

female crimp
female connector

Next step is to get a working hardware, for this application i wanted to have some features:
* Using original waterproof connectors and housing, no soldering should be done for easy swapping and replacing any parts
* Sensor voltage protection, no more then 12V to the sensor
* Sensor output driver does not drive any load (13kOhms)
* Lamp short circuit protection, current is limited to 100mA
* After Ignition do a lamp test for ~500ms, then 500ms shutdown, then use the sensor value

schaltplan

The controller used is a Atmel ATiny13V, which works at 2MHz @5V. The code is written in plain c.

int main(void)
{
	// PB0 = GND
	// PB1 = sensor reading
	// PB4 = lamp output
	DDRB=0x10;
	PORTB=0x00;
	_delay_ms(500);
	PORTB=0x10;
	_delay_ms(1000);
	PORTB=0x00;
	_delay_ms(500);	
	PORTB=0x00;
	while (1)
	{
		if (PINB & 0x02)
		{
			PORTB = 0x10;
		}else{
			PORTB = 0x00;
		}		
	}
}

there is a testvideo available on youtube, folowwing this link

A possible improvement would be to debounce the digital inputs and adding a low pass filter, which will remove unwanted blinks if the sensor is only half wet.

[Top]

Ural Ranger steering damper repair

Posted on 14. March 2016 in Motorcycles

Hi all,
recently the steering damper of my sidecar went dry, so it did not work correctly. Dismounting the damper was quite easy, but problematic was opening the end screw of the damper, to refill the oil. Because the damper screws are made of aluminuim, the risk of damaging the screw is very high.
The only way around is to build a proper tool for opening the device.

ld1
end screw with little notches

ld4
first mockup of the tool in CAD

ld3
after a little mechanical work

ld2
testing the tool

the cad is available for download here

The tools material is also aluminium, because i dont want the tool to be a harder metal then the screw.
So far this little hack works great, no more problems opening the damper, a 100% fixed grip and no risk of damaging the damper.

[Top]

setup raspberry pi with spdns – secure point DNS

Posted on 14. February 2016 in low voltage experiments

Hi folks,
my ISP is changing my IP address once a day, but still i wanted to connect to my raspberry pi homeserver from the internet. After some experimentation time i found a nice solution to work with.

1.) Register and setup spdns
Register as a new user at spdns.de
Setup a new virtual hostname for example “myhost.spdns.eu”

2.) setup a little python script
I downloaded a script from the user “mmichaa” python_script
and altered the main function of the script

def main(argv):
	if len(argv) != 4:
		print ''
		print "tUSAGE: " + __file__ + ' <hostname> <user> <passwd>'
		print ''
		return None
	hostname = argv[1]
	user = argv[2]
	passwd = argv[3]

to

def main(argv):	
	hostname = 'myhost.spdns.eu'
	user = 'myusername'
	passwd = 'mypassword'

so you do not need to provide the username and password as command line parameters.

3.) setup a cron job to automatically start the script
alter the cron configuration by entering

sudo crontab -e

add a new line at the end of the document

@hourly python /home/pi/spdns-client.py

test the script

sudo /etc/init.d/cron restart

 

[Top]

Rescue a DNT DigiMicro C11 Digital Microscope from scrap

Posted on 18. December 2015 in low voltage experiments

C11 camera with mount

There is a very simple way to get an old DNT DigMicro C11 camera working in Windows 8.1. The company DNT has moved on with a newer products like the “DigiMicro Scale 2.0” link to product page , but stopped support for older products. Unfortunately the newer software does not recognize the old hardware, so i found a way to make this product working on a modern system (W8.1).

In the device manager, the camera hardware id was detected as:

USB\VID_0C45&PID_6270&REV_0101
USB\VID_0C45&PID_6270

The valid driver for this camera is “SN9C201” from Sonix Inc.
download the driver file (USB20PCCam_5.7.26000.0.exe) from the link below USB20PCCam_5.7.26000.0.exe

cam_manager

the device will be detected in the device manager

To display the image i used the VLC Mediaplayer, available from http://www.videolan.org. Open the player and use the function “CTRL + C” open device. Set the mode to “Direct Show”, device to “USB2.0 PC Camera (SN9C201)” and the audio to “None”, this step is mandatory or it will not work correctly!

cam_vlcsettings

The device works perfectly
cam_vlcrunrecord

[Top]