I've built an internet connected PSoC device,based on the ENC28J60 chip.This is a webserver(fully working,and quite robust.) and also a webclient(this part isnt flawless yet.),and can also support DNS,UDP TX/RX,so NTP,WOL etc can be easily built in.
My code is hosted at my github account,and currently the webclient part is untested,but the rest of it,inclusive of DNS works fine.
I havent posted up screenshots or network traffic captures,but I shall do so soon.
The code is built really modular,and can be expanded and customized with ease.Its also heavily commented,so newbies can play with it too. 🙂
I shall write out more documentation and examples soon too.Once I get the webclient working,I'll try make this a component.
I'll end with some screenshots...
And the working Ping:
Solved! Go to Solution.
Thanks for the kind words guys!..
@Bob - Well,in India in summer,36 is cool 😛
I'm having issues with my internet connection here,but I will defn add more docuementation,code examples and traffic dumps of packet transactions.
Once I get the webclient functionality up,I'll see if I can use a dynamic DNS service to host the webserver online.We can then stress test it too! 😛
Updated the code,with a bunch of fixes and such.Webclient,Webserver,DNS,ARP,PING,UDP all work perfectly.
Feel free to give the code a spin with an ENC28J60 module.
Code here : https://github.com/kmmankad/ENC28J60-PSoC3/
I'll work on getting some more examples out there.Maybe DHCP support too.
Added two new examples,
1.Generic UDP Rx/TX github.com/kmmankad/ENC28J60-PSoC3/tree/master/ENC28J60-BasicUDP.cydsn
2.COSM Client(Upload data) github.com/kmmankad/ENC28J60-PSoC3/tree/master/ENC28J60-COSMExample.cydsn
For the testing UDP RX/TX,I wrote out a small python script that gives an interactive textual environment with any connected network device capable of UDP on the selected port.
Heres a screenshot of PyUDPComm v1.0(https://github.com/kmmankad/PyUDPComm) in action
Added a new example,
COSM Read Feed example - https://github.com/kmmankad/ENC28J60-PSoC3/tree/master/ENC28J60-COSMReadExample.cydsn
This example reads data from a pre-existing feed on COSM.com.Two things that this can directly be used for are:
1.Monitoring remote sensors: Say you have a SensorA,connected to the internet and uploading its data,you can have this code running on a PSoC connected to COSM.com,and get that data,without requiring a PC in between.You can also retrieve the data as a graph( PNG image),and then draw that onto an LCD(?).
2.Control of devices via the web interface on COSM.com : Since you can set datapoints for feeds on COSM.com,you could set a certain value,and make the PSoC act on that when it downloads that in.
Heres a picture of the device I've been working on.
The USB cable is only for power and to upload new code,if required.(yes,via a USB Bootloader).
kmmankad great work can you tell is there any way that i can use your psoc online and see the ouput in any simulator so that anyone who cannot buy psoc or one who is not having psoc with him can try out his project.
cloud implementation of psoc kit
Just a thought, maybe plot a non averaged temp reading so there is "life"
to the display of data, or both an averaged curve and a sample to sample
Super application, this is why we are going to need IPV7000 soon, the number
of nodes on the planet is going to explode.
Been to you blog page and good work. I may copy you code to try some ideas. BTW do you still have the EZPSOC3 PCB? Or you can ask people here ang order somemore for those interested. 🙂
Thanks for the kind words.
I'm going to clean up and add more features to the IP stack.Though,with a RaspberryPi for just $25(almost the price of a single PSoC3 chip...),writing a network stack for the PSoC3 feels a little redundant.
I belive the kick about having a network stack in a PSoC3 or 5LP is that you can have a (nearly) single-chip solution for data aquision. As you all have experienced (at least I hope so) there are still resources left when implementing a project (or you'll have to choose a larger chip).