CAN/CANopen

Hello all..

Ok, I'm starting a project to test some devices that use either CAN or CANopen technologies.

These devices are used in the medical field to operate tables or parts of a X-Ray arm for movement.

It has switches and leds.

I have broken down the connections of the plug to show power, CanH and CanL with some other items.

I have the Mega 2560 and know I would need a interface of some type.

I know I will need to step thru speeds and watch for data has a button or switch is activated. I will worry about the LED's later.

I'm reading on CAN bus technology now to understand how that functions.

I hope to create a screen showing which switch is active when press.

Thank you for your help..

Wayne

Thank you for your help..

You don't ask a question, so maybe it's a help for you to point you to a shield that handles the hardware layer:

Devices intended for use in medical environments have EXTREMELY stringent
safety requirements, and are closely regulated by governments. If I were you,
I'd look into this before proceeding much further.

oric_dan(333) is correct. If these devices are not "patient connected" you will have far less safety requirements than if they are. In either case you will have to probably deal with testing agencies ( which are expensive ) before you can produce a product for use in a medical facility.

Stay out of this. Medical devices should be:

  • designed by people who are skilled in the art,
  • extensively tested, and
  • listed for the purpose.

My take is that you can't accomplish any of these. Even if you're not controlling the x-ray beam itself, you're still moving things around that might be in contact with or close to a patient. Everyone who's tried to control something of that size will tell you that there's a real possibility that the devices, and their movement, will get away from you, and be out of control. The result would be a patient bashed in the head with a c-arm, or dumped onto the floor. Both are bad.

Maybe you have some surplus junk that you intend to use in a low-budget remake of "Frankenstein." If that's the case, have fun. But, if you ever want this gizmo to operate in the presence of a live patient, stop thinking about it.

Ok, I need to clarify my project.

My company is in the medical field. We refurbish C-arms and other items in the field.

I have designed a test system for the TSO's used on some of the CT/C-arms in the industry. The problem is, to test the TSO, you need a system.

We have a system to test the older TSO's, but, it takes 4 mins to shut off the system, and 8 mins for to come up in a run condition. If you need to test repaired 10 units after they are repaired, it becomes time intensive.
Thus the test box/unit allows the tech to test all functions of the TSO before it is placed on the system.

Now the new TSO's..

They work on CANopen. A TSO has LED's to indicate a feature selected, and buttons and switches to control table and maybe collimation of the X-Ray beam. They do not produce X-rays.
The TSO's have been designed by the company of the system.
For me, I just need to confirm via a simple program to see if I can fire the led's and test the switches (other than an ohm meter)

TSO means Table Side Operation unit.

I have figured out some of the signals from the system (seq to light LED's)
But I need to get speed and info of the output functions of the switches of the unit.

There are various types of TSO's so I need to make a matrix of the switch signals.

My company is ISO 900x and IEC 60601.. certified. (can not remember all of this stuff..)
I'm involved in all aspects of Design, Operation of the current other 2 projects for manufacturing.

My problem is I just need a pointer of how to and what to use to talk CAN via the mega board and the shield that was pointed out earlier.

All the TSO's I have are exchanges, so to say they are from working systems. Just we are now in need of refurbishing these units and having them ready for exchanges.

Ok, a bit of heads up..

I did get the SparkFun CAN-BUS and ended up getting the UNO board (Mega did not work due to pin assignments) and have started my tests.
Using a simple SEND/ RECV software from elsewhere, I'm able to see button values as they are pressed.

This is working pretty good so far.

I have LED's to light as well too.

So I now have a slight idea how this works on this unit, so happens not all units use same plug configurations.. But this is the learning curve..

OK, Basically all done..

I have the the Uno board running on a serial port sending the code via serial. I then use ThinBasic to grab the serial code (testing by case select) and display an active button on the screen.

This is working for both a contact type switch and a joystick type that uses hall-effect IC's (changing code values)

I might not try to light an LED since they do 2 test during booting.

I can attach both code's (ThinBasic will be of a smaller size one) if anyone is interested.

Old

So did you do this via CANOpen? I am about to start a learning project where I would like to do almost the exact same thing that you just did. Can you share your code?

Thanks for doing this!

There are a number of AVR's with CAN support built in and you can program them with Arduino.
Just so you know.

CAN is also used in the Automotive industry. There are AVR projects/devices to diagnose modern cars.

tmd3:
Stay out of this. Medical devices should be:

  • designed by people who are skilled in the art,
  • extensively tested, and
  • listed for the purpose.

My take is that you can't accomplish any of these. Even if you're not controlling the x-ray beam itself, you're still moving things around that might be in contact with or close to a patient. Everyone who's tried to control something of that size will tell you that there's a real possibility that the devices, and their movement, will get away from you, and be out of control. The result would be a patient bashed in the head with a c-arm, or dumped onto the floor. Both are bad.

Maybe you have some surplus junk that you intend to use in a low-budget remake of "Frankenstein." If that's the case, have fun. But, if you ever want this gizmo to operate in the presence of a live patient, stop thinking about it.

Seriously ??? what happened to hey engineer be a dreamer and build something...... 99% percent of technology is possible because us dreamers made it possible.... we do not know what work others do, what there resources are or how talented they are.... and we should really not shoot eachother down but rather motivate eachother to build cool stuff...

The original poster did not declare that they were a professional until post #5.

This is a hobby forum and therefore it is assumed that most people seeking advice are amateurs.
Amateurs should not mess with x-rays because they can result in deep burns and cancer to bystanders.

Things have changed since the 1930's. If you want to do dangerous stuff, you'll need recognised qualifications, government approvals, third party insurance and a facility that keeps people out and whatever you're messing with in.

But still there is a nicer way to approach the situation, maybe steer the guy in the right direction so he can get the qualifications if he wants to, or at least dont be rude about it in the first place, or maybe even recommend somebody that can help him so he does not get hurt. I understand some countries has regulations all im saying is dont shoot people down, for all you know that man is going to solve world hunger with his ideas, we are all engineers or at least hobbiests and should help each other out whether its for building fun stuff or solving world issues. anyway sorry im stealing the post, @oldpapa i have been working extensively with can and can open networks aswel as modbus, i have designed a very nice can system for my company, if you need help braking down and hacking the original code so you can access certain functions then you can send me the code that you have so i can see where i can help. i might be able to get access to one of those xray platforms myself. the first step would be to build a canbus piggy back so you can read all the can ID and se if its std or ext format, from the can ID you can derive all your functions and then derive the data for actual valued readings. hope that helps

Frostedfocus:
...or maybe even recommend somebody that can help him so he does not get hurt

The thread you are commenting on was started in 2012 so I doubt the original poster is still in need of help.

The central issue isn't the experimenter injuring themselves, it's the experimenter accidentally injuring other people. X-rays go through walls so it's very easy to accidentally irradiate someone without their knowledge or permission and the consequences can be fatal.

The same issues apply to people messing with high voltages, explosives, radioactive sources, high power lasers and chemicals.
Whilst it's perfectly OK for the experimenter to take risks that could could endanger their life, it's not acceptable for the public to be put at risk.

How to develop the ardunio CANopen i/o module ?

please share the example code !!