Substitute for lattice ispvm tool (because of missing Win10 USB Drivers ) - Page 1
Forum section: electronics / general

author: Martin72
author_rank: Super Contributor
timestamp: April 14, 2022, 07:28:41 pm
content: Hi,Still we use older lattice PLDs we programmed them with at last the IVSPM 18.1 software.This works until windows 7, using the USB programming-adaptor HW-USBN-2A.Now our systems are running with win10 only and the software won´t work with it.Or with very "dirty tricks" and then only partly.Question :Is there a win10 compatible programming tool from lattice avaible, which can program the older PLDs and support the USB adaptor ?Thanks in advance,Martin

author: Mario87
author_rank: Frequent Contributor
timestamp: April 14, 2022, 08:11:53 pm
content: Can you not run it on Windows 7 in a Virtual Machine?

author: khs
author_rank: Regular Contributor
timestamp: April 14, 2022, 08:14:50 pm
content: For my W10 laptop I use the LCMXO2-7000HE-B-EVN board, DK# 220-2625-ND with some minor modification to disconnect the onboard XO2-7000HE (pin 136/137). The VCC pin is not connected, so there is no power detect.It works fine with XO2/XP2 devices. I just connected a quite old LC4256 and it was displayed in the Device List of the ispVM System V 18.1. So it should work too..I/O port setup:- Cable Type: USB2- Port Setting: FTUSB-0

author: Martin72
author_rank: Super Contributor
timestamp: April 14, 2022, 08:54:42 pm
content: Quote from: Mario87 on April 14, 2022, 08:11:53 pmI´m afraid not, because of the high restrictions concerning the IT enviroment in our company.Can´t believe that there is no "clean" solution directly from lattice...Plus the problem we use very old (LSPI1016 for example) and newer PLDs - And due to several contracts we must make sure that customers can buy spareparts even up to 20yrs or longer after developement.So we got "tons" of the older PLDs on stock and programming them was never a problem - until win10 came up to our systems here.The former "dirty solution" mentioned in the first post was a win10 system in test mode to get the usb driver installed god knows where our admin have found them.When running, programming the pld was a pain in the arse because in every step it loose the drivers, you must permanently connect and disconnect the programmer.So it´s not a general solution because of the testmode and the described problems.@khs:Must read your post tomorrow again, when I´m more awake than now...

author: pigrew
author_rank: Frequent Contributor
timestamp: April 14, 2022, 09:14:22 pm
content: You may want to look into using the DataMan/ELNEC line of programmers.I use them mostly with EEPROMs, but their compatible parts list includes the older Lattice parts (and they list Windows 10 as supported).

author: Someone
author_rank: Super Contributor
timestamp: April 14, 2022, 10:46:09 pm
content: Quote from: Martin72 on April 14, 2022, 08:54:42 pmThe obnoxious answer for that situation:since you (IT) have final say over the software environment, it is your job to find me a solutionCC'd to your management chain etc, explaining that you cannot work on XXX task/project until this blocker is resolved

author: Martin72
author_rank: Super Contributor
timestamp: April 15, 2022, 11:44:21 pm
content: Yes, it should be their job but that won´t help me/us in the moment.Plus I´m curious in general concerning the programming software on newer systems - Won´t believe that lattice gives a sh**t about it.So I´ve found the "Diamond" software on their page - It seems you can program the older plds with it too.Download.....Buzzzz...No download without a account.OK, creating an account, download it.Install it, run it.Buzzzz....No license.OK, log in again, ah...license options...Choosing free license....Buzzz...Your account is "too fresh", try again in the next days...OK, I will contact them, asking the same question as here.Click on "contact us"....Buzzzz...Your account is too fresh to....WTF?!

author: joeqsmith
author_rank: Super Contributor
timestamp: April 16, 2022, 12:15:23 am
content: Similar problem having to support old part. The last time I had used Lattice PDLs, was in 2016. I thought I was using 10 but maybe not. I was using their 2B programming cable with the ispLEVER Classic software. I can check if you like next week if it still runs on 10.

author: joeqsmith
author_rank: Super Contributor
timestamp: April 17, 2022, 05:26:07 pm
content: Looking at my system, the license file's MAC was for my older PC which was Windows 7 based. Checking old PC and sure enough. I attempted to install the software on my Windows 10 PC. Seemed to install fine but the driver suggests 7 only.Plugging in the adapter, the old Unknown Device shows up. Looking at the programming adapter I have, it is also the 2A, not B as I previously wrote.Went to Lattice the site and of course, they no longer have a record of my account so no license. Looking at the old license (which was perpetual), it doesn't contain a SN which is required for me to register. lol I could move the old Ethernet card to the new PC but it's not going to get me around the driver problem.I had not used these tools for some time and had decommission the old PC and had removed the Lattice tools so I reinstalled them along with my original license file. The drivers now work as expected but the perpetual license has expired.Have you tried to contact them? If so, what was their response?

author: Martin72
author_rank: Super Contributor
timestamp: April 17, 2022, 09:31:44 pm
content: Hi,After this:QuoteI didn´t try it again, want to do this after the Easter days...Edit : Try it again, must have to wait...

author: joeqsmith
author_rank: Super Contributor
timestamp: April 17, 2022, 11:40:25 pm
content: Ok. I'll contact them next week and let you know what I find out.

author: Martin72
author_rank: Super Contributor
timestamp: April 20, 2022, 08:31:29 pm
content: It seems there is a standalone only programming software avaible, but when you following thelink, it shows only some documents and a kind of "servicepack", not the programmer software itself...Filling out the contact formular is pain in the arse, giving it up for today..Martin

author: khs
author_rank: Regular Contributor
timestamp: April 20, 2022, 09:36:22 pm
content: I assume all USB Lattice programmers use the FTDI chip.So I would just try to search for new drivers via W10 update.(My) W10 uses the same driver as W7: usbccgp.sysHere the data from the "USB Device Tree Viewer" (via W7):=========================== USB Port3 ===========================Connection Status : Device is connectedPort Chain : 2-3======================== USB Device ========================+++++++++++++++++ Device Information ++++++++++++++++++Device Description : USB-VerbundgerätDevice ID : USB\VID_0403&PID_6010\5&30AC598D&0&3Driver KeyName : {36fc9e60-c465-11cf-8056-444553540000}\0076 (GUID_DEVCLASS_USB)Driver : C:\Windows\system32\DRIVERS\usbccgp.sys (Version: 6.1.7601.24138 Date: 2018-05-02)Legacy BusType : PNPBusClass : USBService : usbccgpEnumerator : USBLocation Info : Port_#0003.Hub_#0004Location IDs : PCIROOT(0)#PCI(1302)#USBROOT(0)#USB(3)Container ID : {2eca6b65-31fc-11e6-88da-50e549c82a02}Manufacturer Info : (Standard-USB-Hostcontroller)Capabilities : Removable, SurpriseRemovalOKAddress : 3Problem Code : 0Power State : D0 (supported: D0, D2, D3, wake from D0, wake from D2)Child Device 1 : USB Serial Converter ADevice ID : USB\VID_0403&PID_6010&MI_00\6&38B7DA42&0&0000Class : USBChild Device 2 : USB Serial Converter BDevice ID : USB\VID_0403&PID_6010&MI_01\6&38B7DA42&0&0001Class : USBChild Device 1 : USB Serial PortDevice ID : FTDIBUS\VID_0403+PID_6010+5&30AC598D&0&3&2\0000Class : PortsCOM-Port : COM14 (\Device\VCP0)---------------- Connection Information ---------------Connection Index : 0x03Connection Status : 0x01 (DeviceConnected)Current Config Value : 0x01Device Address : 0x02Is Hub : 0x00 (no)Number Of Open Pipes : 0x04 (4)Device Bus Speed : 0x02 (High-Speed)Pipe0ScheduleOffset : 0x00 (0)Pipe1ScheduleOffset : 0x00 (0)Pipe2ScheduleOffset : 0x00 (0)Pipe3ScheduleOffset : 0x00 (0)------------------ Device Descriptor ------------------bLength : 0x12 (18 bytes)bDescriptorType : 0x01 (Device Descriptor)bcdUSB : 0x200 (USB Version 2.00)bDeviceClass : 0x00 (defined by the interface descriptors)bDeviceSubClass : 0x00bDeviceProtocol : 0x00bMaxPacketSize0 : 0x40 (64 bytes)idVendor : 0x0403 (Future Technology Devices International Limited)idProduct : 0x6010bcdDevice : 0x700iManufacturer : 0x01Language 0x0409 : "Lattice"iProduct : 0x02Language 0x0409 : "Lattice FTUSB Interface Cable"iSerialNumber : 0x00bNumConfigurations : 0x01-------------- Configuration Descriptor ---------------bLength : 0x09 (9 bytes)bDescriptorType : 0x02 (Configuration Descriptor)wTotalLength : 0x0037 (55 bytes)bNumInterfaces : 0x02bConfigurationValue : 0x01iConfiguration : 0x00bmAttributes : 0x80 (Bus Powered)MaxPower : 0xFA (500 mA)---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x00bAlternateSetting : 0x00bNumEndpoints : 0x02bInterfaceClass : 0xFF (Vendor Specific)bInterfaceSubClass : 0xFFbInterfaceProtocol : 0xFFiInterface : 0x02Language 0x0409 : "Lattice FTUSB Interface Cable"----------------- Endpoint Descriptor -----------------bLength : 0x07 (7 bytes)bDescriptorType : 0x05 (Endpoint Descriptor)bEndpointAddress : 0x81 (Direction=IN EndpointID=1)bmAttributes : 0x02 (TransferType=Bulk)wMaxPacketSize : 0x200 (max 512 bytes)bInterval : 0x00 (never NAKs)----------------- Endpoint Descriptor -----------------bLength : 0x07 (7 bytes)bDescriptorType : 0x05 (Endpoint Descriptor)bEndpointAddress : 0x02 (Direction=OUT EndpointID=2)bmAttributes : 0x02 (TransferType=Bulk)wMaxPacketSize : 0x200 (max 512 bytes)bInterval : 0x00 (never NAKs)---------------- Interface Descriptor -----------------bLength : 0x09 (9 bytes)bDescriptorType : 0x04 (Interface Descriptor)bInterfaceNumber : 0x01bAlternateSetting : 0x00bNumEndpoints : 0x02bInterfaceClass : 0xFF (Vendor Specific)bInterfaceSubClass : 0xFFbInterfaceProtocol : 0xFFiInterface : 0x02Language 0x0409 : "Lattice FTUSB Interface Cable"----------------- Endpoint Descriptor -----------------bLength : 0x07 (7 bytes)bDescriptorType : 0x05 (Endpoint Descriptor)bEndpointAddress : 0x83 (Direction=IN EndpointID=3)bmAttributes : 0x02 (TransferType=Bulk)wMaxPacketSize : 0x200 (max 512 bytes)bInterval : 0x00 (never NAKs)----------------- Endpoint Descriptor -----------------bLength : 0x07 (7 bytes)bDescriptorType : 0x05 (Endpoint Descriptor)bEndpointAddress : 0x04 (Direction=OUT EndpointID=4)bmAttributes : 0x02 (TransferType=Bulk)wMaxPacketSize : 0x200 (max 512 bytes)bInterval : 0x00 (never NAKs)

author: Martin72
author_rank: Super Contributor
timestamp: April 21, 2022, 08:39:30 pm
content: QuoteToday I´ve open up mine on work - It doesn´t got an FTDI chip, it got one from cyrrus logic.But it was no problem to find a driver package for it, even for win10 32/64 bit.On work, my notebook "say" unkown usb component when I plug in the programming adaptor.Can´t install the drivers as I didn´t got admin rights on it.Took the adaptor and the drivers to home, plug in the adaptor - nothing happens, no message about an unknown component...My notebook is on win 10 test mode, maybe this is the reason.Nevertheless, tomorrow one of our admins are at work, so I can ask him for installing the drivers and see what happens.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 21, 2022, 09:44:57 pm
content: Buy a cheap Win7 laptop, call it "test equipment" and don't tell the IT people

author: Martin72
author_rank: Super Contributor
timestamp: April 21, 2022, 10:13:26 pm
content: But let me tell you something, we got indeed a stationary win7 pc for programming chips who aren´t in-circuit programmable ones.The files ( for eprom, eeprom, GALs, µCs and so on) are on the network, so the pc must be connected on the network also.When you turning on the pc you can go and get some coffee, meeting with other colleagues, testing things...He´s trying to get some updates, "find" updates, try to install them, find out the install is failed, remove the updates..And after say 4 hours you can use him...And this is going after every powering on..The whole situation what programming concerns is actual a pain in the arse.And it is hilarious that I am going to search for solutions in my PRIVATE time instead of kicking our IT in their bu....Ah, forget it.Martin

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 22, 2022, 08:03:23 am
content: Quote from: Martin72 on April 21, 2022, 10:13:26 pmUSB Stick?

author: Martin72
author_rank: Super Contributor
timestamp: April 23, 2022, 08:59:35 pm
content: ...Are not allowed to use...

author: nctnico
author_rank: Super Contributor
timestamp: April 24, 2022, 01:47:10 am
content: Quote from: Martin72 on April 23, 2022, 08:59:35 pmI guess they disconnected the mice and keyboards as well? How can you work in such an evironment? It is like putting thick foam rubber padding on a hammer. Maybe it is better to just stop supporting the older products; just say that the IT department's rules get in the way.I used to work for a company that handled secured projects but the IT department over there was very cooperative and never got in the way of getting work done.

author: Someone
author_rank: Super Contributor
timestamp: April 24, 2022, 02:43:26 am
content: Quote from: nctnico on April 24, 2022, 01:47:10 amStrawman much? Like USB devices are all equal? The rules are "obvious" just like workplaces that blanket banned the use of knives for any purpose. 99% of people are using them for the wrong reasons, so its easier to ban them outright rather than try and capture the complex right/wrong uses. Many corporations require full time live virus scanning on "all" computers. Which brings old fashioned file based compiling to a crawl, but it makes sense for the vast majority of people.I've worked in many of those roles that sit outside the nonsense rules, so you end up with a good relationship to the people enforcing the rules who grant you exceptions (entire lab/workshop/software locations/staff with blanket exemptions), or get fed up and work somewhere else.

author: Martin72
author_rank: Super Contributor
timestamp: April 30, 2022, 11:05:39 pm
content: Quote from: Martin72 on April 21, 2022, 08:39:30 pmNothing.After several attempts he gave up...My suggestion to activate the win 10 test mode he won´t or couldn´t use it for some reasons I´ve forgotten.Meanwhile I´ve recognized the problem isn´t correctly described in my first post, so here is the correction:Lattice ispvm 18.1 is intstalled on a notebook which got win10 as OS.It runs but won´t detect the usb-programmer HW-USBN-2A because of missing drivers(thats what the failure message "says").On my former notebook with win7 there was never a problem like this, so I guess the inbuild driver won´t function on win10.The HW-USBN-2A adaptor doesn´t got the common ftdi chip, instead it got one from cyrus logic.Found win10 driver for it, but they couldn´t get installed.Martin

author: laugensalm
author_rank: Regular Contributor
timestamp: May 02, 2022, 07:43:34 am
content: This starts to become a FSP..(frequently seen problem).My advice for long term viability:- Get a linux box set up- If you're dependent on Windows SW, use a VM image- Most of the lattice SW can be set up in a Docker container with an arbitrary MAC, no need to transfer a network card- Get a genuine FTDI adapter that is known to run with Windows 10, you will not even have to go through a driver signing process, just use the blank 0x6010 PID- You might also get naggy on a Lattice FAE (better skip incompetent online support)The licensing issues with Lattice are annoying indeed, it has caused a few niche customers to switch back to Xilinx, obviously Lattice Semi didn't care. Others again don't care if their auxiliary tools violate licence protection, as keeping the system running is more important.

author: joeqsmith
author_rank: Super Contributor
timestamp: May 02, 2022, 12:12:07 pm
content: I had send them an email on the following Monday. After two weeks they have yet to respond.

author: m k
author_rank: Super Contributor
timestamp: May 02, 2022, 12:52:07 pm
content: Quote from: Martin72 on April 30, 2022, 11:05:39 pmSome old drivers can't connect to virtual COM ports higher than 8.You may also need to uninstall some wrong drivers before right ones start functioning.Raw deal.Become a Windows Driver Developer and grant Lattice driver a license.(no idea what that means in practice)

author: Martin72
author_rank: Super Contributor
timestamp: May 02, 2022, 12:59:43 pm
content: Hi,QuoteCan´t imagine this could be the solution at work, for private usage no problem.QuoteInteresting point."Unfortunately" this week I´m not at work, couldn´t tell it the admin.Tried to "simulate" it here, but there are no links for downloading the 18.1 software.QuoteNevertheless thank you joeqsmith

author: joeqsmith
author_rank: Super Contributor
timestamp: May 02, 2022, 02:28:36 pm
content: I thought about trying to get around the driver but again, my license was locked to my old PC and had expired. Looking at their site, it seems like everything they offer is a subscription now. Obviously what I had was not perpetual but I don't remember having to pay them for a license. I guess if we need to change anything, we will deal with it then, when it's a crisis.I'll continue to follow along in case you come up with a work around. Good luck.https://www.latticestore.com/products/tabid/417/pageindex/1/searchid/1/searchvalue/lsc-sw/default.aspx

author: Bassman59
author_rank: Super Contributor
timestamp: May 02, 2022, 02:46:09 pm
content: Quote from: nctnico on April 24, 2022, 01:47:10 amI work with engineers at one of our National Labs, and their security rules are quite explicit -- no USB flash things, period. These things really are security nightmares.It's not an IT issue, as such. It is very much part of the organization's necessary security infrastructure.

author: Martin72
author_rank: Super Contributor
timestamp: May 02, 2022, 03:14:26 pm
content: Exactly this.A few minutes ago I was on the lattice page and downloaded the "Programmer Cable Guide".They recommend the HW-USBN-2B cable (which I also got at work but never used) but it´s strange, this cable doesn´t support 5V types, only up to 3.3V.Where the older cable (2A) supports EVERYTHING...And this one sentence in the guide is a lie:QuoteThere is nothing ...Programming tool is integrated in the Diamond suite - But I/we just want to program PLDs, nothing else, we only need the stand-alone programming tool which is not downloadable.....If this would be the solution for the win10 driver problems...

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: May 02, 2022, 06:28:17 pm
content: This appears to be a programmer-only install of Diamondhttps://www.latticesemi.com/Products/DesignSoftwareAndIP/ProgrammingAndConfigurationSw/Programmer

author: Martin72
author_rank: Super Contributor
timestamp: May 02, 2022, 07:43:08 pm
content: Hi,Yes this is what you will always see there - But it´s not the full programm, only somekind of add-on...Meanwhile I´ve installed the whole diamond 3.12 suite here on my private notebook, won´t start without a license.So I logged in again and choose a free license.You have to enter the physical address of your network adaptor to get one...The quickstart "guide" in the mail is somekind of irritating, in fact you have to copy the dat.file into the license folder of the diamond software.then starting was not a problem anymore, under "tools" you find "programmer" but it was greyed out:I do not have the programmer here at home...

author: joeqsmith
author_rank: Super Contributor
timestamp: May 03, 2022, 04:14:59 pm
content: I installed their latest Diamond software with the free license on Windows 10 which included their most recent drivers for the 2A. I can load my old Classic projects and it appears to communicate with the cable just fine. I would need to pull a board from stock to try and program one but from the following, I have little doubt it would work.ERROR - Lattice HW-USBN-2A cable detected on USB Port.However, the board power is not turned ON.So, the question now is why does mine work and yours does not. Did you install that second service pack as well?Looking at device manager, it appears to be the same old driver which doesn't make a lot of sense as it was unable locate it before when I tried it with the Classic.***Added cable settings (auto detected)

author: Martin72
author_rank: Super Contributor
timestamp: May 03, 2022, 04:35:20 pm
content: Hi,QuoteI´ve installed the diamond softwareat home.At work, I´ve got the lattice ivspm 18.1 software on the notebook (win10) and it won´t find the programming adaptor because of the missing driver.I want to test the diamond on my home notebook first before "making noise" at work and force/please the IT to install it on every notebook.I got the diamond software running, but didn´t have the programmer here, could test it next monday.Martin

author: joeqsmith
author_rank: Super Contributor
timestamp: May 03, 2022, 04:38:15 pm
content: I am running Windows 10 Pro 10.0.19044 Build 19044. The 18.1 is what I had used last time I touched Lattice and I could not get to run. The free license for Diamond will not allow it to run so I can try it with these drivers installed.

author: Martin72
author_rank: Super Contributor
timestamp: May 09, 2022, 07:42:59 pm
content: Does anybody have the diamond programmer only software 3.12 ?I give up to ask lattice for it...You do´t have a chance to ask a simple question on the site.

author: Bassman59
author_rank: Super Contributor
timestamp: May 10, 2022, 01:10:20 am
content: Quote from: Martin72 on May 09, 2022, 07:42:59 pmStarthere.Linux version.Windows version.

author: Martin72
author_rank: Super Contributor
timestamp: May 10, 2022, 06:30:43 pm
content: Sorry, but it´s not the programming only version I´m looking for.

author: Bassman59
author_rank: Super Contributor
timestamp: May 10, 2022, 08:04:40 pm
content: Quote from: Martin72 on May 10, 2022, 06:30:43 pm... but you asked, "Does anybody have the diamond programmer only software 3.12 ?"

author: Martin72
author_rank: Super Contributor
timestamp: May 10, 2022, 08:44:22 pm
content: Hmm...My english seems to be very bad, sorry for that.With programmer-only I´ve meant the software which allows only to program the plds with jedec files.There´s a link to it, but when you following it, it will be only an "encryption pack", not the whole programm itself.https://www.latticesemi.com/en/Products/DesignSoftwareAndIP/ProgrammingAndConfigurationSw/ProgrammerWhen you scroll down you find the so called encryption packs.When you try to install it, installation will be aborted with the message, there is no Diamond Programmer 3.12 present.But this you won´t find on the site..Therefore my question if somebody got it.

author: Bassman59
author_rank: Super Contributor
timestamp: May 11, 2022, 04:46:50 pm
content: Quote from: Martin72 on May 10, 2022, 08:44:22 pmI'm pretty sure the things to which I linked are what you need.

author: Martin72
author_rank: Super Contributor
timestamp: May 11, 2022, 10:12:53 pm
content: Hi,I already got it...https://www.eevblog.com/forum/fpga/substitute-for-lattice-ivspm-18-programming-tool-(because-of-win10)/msg4151542/#msg4151542

author: MazeFrame
author_rank: Contributor
timestamp: September 06, 2022, 04:15:27 pm
content: The Setup:Was tasked to look into this at work.Spent a long time poking Lattice support only to get the least helpful replies out of them. Along the lines of "Buy a new thing", which I totally would, except the department that needs their programmers to work has probably thought of that "solution" on their own.So, elbow long gloves and hazmat suit on, diving into the mysteries that is windows drivers.Turns out, Windows really does not like the checksum failing, but that can be gotten round by clicking ignore when prompted.The "catalogue file" (= bunch of checksums) being off will hard-fail the driver install.Solution:First off, for those in corporate environments, get your IT-Dept. involved since most endpoint protections will prevent windows from entering advanced boot options. In my case, disabling the various protection mechanisms was not enough, had to temporarily uninstall the EP.Secondly: This is a workaround for now. According to the one guy with this setup deployed, it still requires re-plugging the programmer for the drivers to load correctly. I got no details, not my department.For those familiar with disabling driver signature enforcement, just do that.For everyone else:Get the Anti Virus/Endpoint protection out of the way!WinKey: Search for "Advanced Start-Up" Click that restart buttonYour computer may think about this for a moment. In my case, I had to plug the laptop into an external monitor for this screen to show up correctly.On the blue screen with a couple of buttons, click on the text "See more recovery options"On this new screen, click "Start-Up Settings", there press the restart button in the cornerYou are now being prompted for Startup Settings (Yes, Windows is that inconsistent in spelling Start-Up/Startup!) Option 7 "Disable Driver signature enforcement" is what you are afterLog into an account with admin rights and install the driver from the driver package following the prompts (ignore/yes past all the errors and warnings)Windows now sees the programmer in device manager, right-click the device (probably in "Unknown Devices") and select "Update Driver"Select "Browse my Computer for Drivers" and point Windows at the directory with the driversIf you have done everything correctly, you now get a big scary prompt. Click "Install anyway"Windows should almost instantly finde the driver and reclassify the programmer as "USB-Controller"Reboot the machineIn corporate environments, enable/reinstall the AV/EP again and hand the machine back to its user