- USB ( plug it to any computer)
- Ethernet ( plug it to the internet)
- SD card ( save and read all data you will need)
A video showing the project:
Just to give a head start see some of the things i have done so far with this board:
- An Touch keyboard, usable as a standard USB keyboard.
- A Video Game ( pong and snake games) , with TV output, and connection to a PC Keyboard ( the old PS/2 ) for control.
- Picture frame, reads pictures form the SD card and show them on the TV.
- Controling a 5 volt LCD and some leds, with just 3 wires ( the MCU is 3.3V)
- Web server, where you can see some status of the board as temperature, the position of a Pot and a Button, control some leds and the LCD ( all this from the internet)
- the right side of a soldering iron
- program in c ( just the basics)
- programing PICs in assembler ( I've been stuck here for a long time, but it isn't needed)
- how to make a PCB
- a little bit electronics
- debugging
web-server-on-a-business-card-part-2 ( thank you HACKADAY)
The idea of controlling something trought the internet was really nice, so i bought the chip. But when i was delivered classes started. One Year later, i started to read a promising book:Programming 16-Bit PIC Microcontrollers in C: Learning to Fly the PIC 24
I was the 24F, i started right away. Breadboard, wire-mess, and the first programs were running. But as i advanced in the book i felt the need for a PCB. Hackaday project was my base, but i wanted i little bit more. An USB connector, and some pins fore expansions.The WEBSD board was born.
After I developed some extra boards to plug. If i want to do a new thing with the board, just design a simple expansion board.
Follow the next pages to see more about the project. Project files are annexed on this page.
WEBSD.rar1 MB
Remove these ads by
Signing UpStep 1: Main Board
The main board was been based on the hackaday project. It's name come from the two main thing on it:
- WEB - Internet connection
- SD - The memory card
Layout was easy because of the PPS (Peripheral Pin Select) feature of this family. I allows the I/O of the digital peripheral to be assigned to almost any pins. But i was low on the pin count, but squeezed 4 pins out of it for expansions.
Power is done by a small power supply rated for 5v 500mA ( a standart 7805 PS). I do not chose USB power because of the current draw by the Ethernet chip.
To put all the connectors on one side , and to keep a small size, a double layer board was needed. i got addicted by smd parts, they can be faster to solder, and there is no need to drill so many holes in the board. Unfortunately i didn't bought the Smd version of the ENC28j60 so it is a DIP part.
The MCU choice was simple, i wanted to learn to use the 24F family, USB was a nice feature to explore, SOIC package (QFN packages still frightens me). So i just pick the one with the biggest program memory.
The ICSP programming connector is for the pickit2 footprint, i is used also as a rs232 serial port. You can see the communications using the terminal provided with the pickit2 or with a external serial port ( allows for more speed)
Part-list ( with mouser reference) :
| Qty | Value | Device | Parts |
| 3 | red | LEDCHIPLED_0805 | LED1, LED2, LED3 |
| 8 | 0.1uF | C-EUC0805 | C2, C4, C6, C7, C9, C10, C11, C12 |
| 2 | 1uF | C-EUC0805 | C5, C8 |
| 1 | 2K32 | R-EU_R0805 | R12 |
| 2 | 10k | R-EU_R0805 | R1, R5 |
| 1 | 10uF | CPOL-EU153CLV-0405 | C3 |
| 1 | 25Mhz | CRYSTALHC49UP | Q2 |
| 2 | 22pf | C-EUC0805 | C15, C16 |
| 4 | 49R9 1% | R-EU_R0805 | R8, R9, R10, R11 |
| 1 | 60ohms | I_0805 | L1 |
| 1 | 330R | R-EU_R0805 | R4 |
| 2 | 330R | R-EU_R0805 | R2, R3 |
| 1 | AP1117E33 | V_REG_LM1117SOT223 | IC1 |
| 1 | ENC28J60-DIL | ENC28J60-DIL | IC2 |
| 1 | J1006LONG | Ethernet Connector | RJ1 |
| 1 | PIC24FJXXGB002 | PIC24FJXXGB002 | U$1 |
| 1 | SD | SD | U$2 |
| 1 | USB-MB | USB-MB | U$4 |
| 1 | power jack | JACK-PLUG1 | J2 |














































Visit Our Store »
Go Pro Today »




Fico feliz que um trabalho tão bom quanto esse tenha sido feito por um brasileiro, isso é muito motivador !
Parabens !
E um projeto novinho está saindo do forno...
caso queria me mandar uma forma de contato para o meu e-mail serei grato.
Obrigado
But i have one question , i made also this project but what is your power supply more or less then 20V? and what is your working voltage on your board? 3.3V or less?
Because i tryed 12V suplly but did not work.
But keep on the good work :)
Muitas possibilidades de uso, como apoio a servidores em caso de estar offline e até automotivo para saber staus do veiculo e localização com autilização de um GPS.
Abraços.
into TXT file - you can log in HTTPd format and use later web/apache tools from sourceforge
or log data to SD keep on mind you have to log with "append"
never do incerement variables becouse HTTP request are paralell and incerementing you can damage accuracy
simply log only IP in binary form for example 4bytes
and number of visitors is filesize (div) 4(sizeof IP)
FATfs statistics.log (IP 20.130.57.103)
020130057103(chr(\r\n)) = 14chars per line ( 14 is better for DIViding)
filesize/14=num_lines = hits later you can use unix/cygwin GNU tools
sort -nr | uniq > visitors -> GeoIP produce country list :)
Nice NIce Project I wish have same with AVR but not Arduino :p
ATmega644P
Dont worry about you english its better then my. but I see problem with lighting in you room video its too Dark. Nextime change the LightBulb ;)
; - )
Very nice project, good work.
The hardware will change a lot, as you wan't to use a PIC that has the Ethernet MAC and PHY inside already. The software could be adapted, but microchip has a lot of the ethernet examples using this chip.
It's up to you to go the fast way ( with my project over here), or the fun way ( developing your own board )...
Fell free to ask any question : )
But that is the way that microchip blinks leds on the examples, but the URL string should no be longer than 100 bytes to prevent overflow.
I know that maybe the LCD should use a post method. But i when i wrote that code i was still learning the GET request.
Another code I'm doing gives you the option of send a bitmap file to the board and make that show up on the TV. This one could only work with POST.
It's good that you'll have an example of a POST.
BTW, this is a very cool project. thanks for sharing it.
-Matt
I am so impressed with all the effort you put into this project along with the explanations and referances you used. You are very talented ! I am english ( with a small amount of french speaking) and to think I would have missed all the learning if you posted this in your native language ... Thank you for all you have done !
Question , what is your occupation and electronics background , if you don't mind my asking ?
Build_it_Bob
I started learning electronics at 2004 I think. So far I learned everything in the internet, blogs ( HACKADAY, HACKEDGADGETS , ...) , some books ( The art of eletronics), and application notes. But mainly from blowing leds on a breadboard.
I would imagine, @mooreroy, that you would be hard-pressed to construct a useful Instructable in Portuguese. I know I would be!
That said, @arthurb, I am very impressed with your work, and I think you have done a great job with this Instructable. Thanks for sharing!
" Well I could have written the entire project in Portuguese, but only some people would read without using a translator. And others would not even work to use Google to generate an awful translation."
I'm with you man, good job on this.
on a second note, would it be possible to play video files on this. I'm amusing off of usb or over Ethernet, maybe put an "O.S." of some kind on the SD card.
I understand where you are coming from, but I think you might have missed the fact that the author's native language is probably not English.
For non English speaking folks, I make an exception to my grammar Nazism; and you should too!